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, " +