public static POPOrder GetPurchaseOrderByPrimaryKey(string key) { POPOrder poporder = null; if (application != null) { Sage.Common.Data.DbKey dbkey = new Sage.Common.Data.DbKey(Convert.ToInt32(key)); poporder = Sage.Accounting.POP.POPOrder.Fetch(key); } return(poporder); }
public static PurchaseOrderRoot SagePurchaseOrderToMTPurchaseOrder(string companyid, POPOrder poporder, string sessiontoken) { PurchaseOrderRoot purchaseorderroot = new PurchaseOrderRoot(); PurchaseOrder purchaseorder = new PurchaseOrder(); purchaseorder.id = ""; purchaseorder.externalId = poporder.PrimaryKey.DbValue.ToString(); // GET THE VENDOR ID FROM MINERAL TREE Vendor vendor = MTApi.GetVendorByExternalID(companyid, sessiontoken, poporder.Supplier.PrimaryKey.DbValue.ToString()); if (vendor == null) { return(null); } purchaseorder.vendor = new ObjID() { id = vendor.id }; purchaseorder.dueDate = poporder.DocumentDate.ToString("yyyy-MM-dd"); purchaseorder.poNumber = poporder.DocumentNo; purchaseorder.memo = ""; purchaseorder.state = "PendingBilling"; purchaseorder.poType = "Standard"; // PURCHASE ORDER ITEMS List <PurchaseOrderItem> items = new List <PurchaseOrderItem>(); int linenumber = 1; foreach (Sage.Accounting.POP.POPOrderReturnLine line in poporder.Lines) { PurchaseOrderItem item = new PurchaseOrderItem(); // // FIGURE OUT THE MT ID OF THE LINE ITEM SageStockItem ssi = Sage200Api.GetStockItemByCode(line.ItemCode); if (ssi != null) { Item mtitem = MTApi.GetItemByExternalID(companyid, sessiontoken, ssi.PrimaryKey.DbValue.ToString()); if (mtitem != null) { item.companyItem = new ObjID() { id = mtitem.id }; } } // item.name = line.LineDescription; item.quantity = new Quantity() { value = PriceConverter.FromDecimal(line.LineQuantity, 2), precision = 2 }; item.quantityReceived = new Quantity() { value = 1, precision = 0 }; // no value in sage item.billedQuantity = new Quantity() { value = PriceConverter.FromDecimal(line.LineQuantity, 2), precision = 2 }; item.cost = new Cost() { amount = PriceConverter.FromDecimal(line.UnitBuyingPrice, 2), precision = 2 }; item.amountDue = new Amount() { amount = PriceConverter.FromDecimal(line.LineTotalValue, 2), precision = 2 }; item.lineNumber = linenumber; // no value in sage item.closed = false; // no value in sage item.description = line.ItemDescription; item.poItemStatus = "New"; items.Add(item); linenumber++; } purchaseorder.items = items; purchaseorderroot.purchaseOrder = purchaseorder; return(purchaseorderroot); }