diff --git a/server/AyaNova/biz/PurchaseOrderStatus.cs b/server/AyaNova/biz/PurchaseOrderStatus.cs new file mode 100644 index 00000000..eed7a2a7 --- /dev/null +++ b/server/AyaNova/biz/PurchaseOrderStatus.cs @@ -0,0 +1,15 @@ +namespace AyaNova.Biz +{ + /// + /// Enumeration used to track Purchase Order through business process from start to closed + /// + public enum PurchaseOrderStatus : int + { + OpenNotYetOrdered = 1, + OpenOrdered = 2, + OpenPartialReceived = 3, + ClosedPartialReceived = 4, + ClosedFullReceived = 5, + ClosedNoneReceived = 6 + } +}//eons diff --git a/server/AyaNova/models/PurchaseOrder.cs b/server/AyaNova/models/PurchaseOrder.cs index 93708bbd..cf1433bb 100644 --- a/server/AyaNova/models/PurchaseOrder.cs +++ b/server/AyaNova/models/PurchaseOrder.cs @@ -16,18 +16,24 @@ namespace AyaNova.Models public uint Concurrency { get; set; } [Required] - public long Serial { get; set; } - public bool Active { get; set; } + public long Serial { get; set; }//WAS PO NUMBER public string Notes { get; set; } public string Wiki { get; set; } public string CustomFields { get; set; } public List Tags { get; set; } - + public string VendorMemo { get; set; } + public long DropShipToCustomerId { get; set; } + public string ReferenceNumber { get; set; } + public long VendorId { get; set; } + public DateTime? OrderedDate { get; set; } + public DateTime? ExpectedReceiveDate { get; set; } + public PurchaseOrderStatus Status { get; set; } + public long ProjectId { get; set; } + public string Text1 { get; set; } + public string Text2 { get; set; } public List Items { get; set; } = new List(); - - public PurchaseOrder() { Tags = new List(); diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 4832dc4f..2b718c88 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -733,8 +733,13 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //PURCHASEORDER //Note don't forget to update name fetcher stored procedure when change this to serial from name - await ExecQueryAsync("CREATE TABLE apurchaseorder (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, serial BIGINT generated by default as identity NOT NULL, active BOOL NOT NULL, " + - "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY )"); + await ExecQueryAsync("CREATE TABLE apurchaseorder (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, serial BIGINT generated by default as identity NOT NULL, " + + "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, " + + "vendormemo TEXT, dropshiptocustomerid BIGINT REFERENCES acustomer, referencenumber TEXT, vendorid BIGINT NOT NULL REFERENCES avendor, " + + "ordereddate TIMESTAMP, expectedreceivedate TIMESTAMP, status integer CONSTRAINT chk_status_valid CHECK (status > 0 AND status < 7), " +//"a check constraint is satisfied if the check expression evaluates to true or the null value" + "projectid BIGINT REFERENCES aproject, text1 TEXT, text2 TEXT " + + " )"); + //UNITMODEL await ExecQueryAsync("CREATE TABLE aunitmodel (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name TEXT NULL, active BOOL NOT NULL, " +