public static PO_HEADER GetData(SAPbobsCOM.Company oCompany, int id) { Utils control = new Utils(); List <PO_DETAIL> details = new List <PO_DETAIL>(); XDocument xDoc = new XDocument(); XDocument xDocDetail = new XDocument(); string sql = "select U_PrimaryNumberingPOS, U_DocumentNumberingPOS, docentry, docnum, CardCode, CardName, DocDate, DocDueDate, TaxDate from opor where docentry = " + id; Recordset rs = control._IDU_Recordset(oCompany, sql); xDoc = XDocument.Parse(rs.GetAsXML()); sql = "select t1.LineNum, ItemCode, dscription, UomEntry, UomCode, Quantity, Price, t2.WhsCode, t2.WhsName from por1 t1 " + "join owhs t2 on t1.WhsCode = t2.WhsCode where t1.docentry = " + id; rs = control._IDU_Recordset(oCompany, sql); xDocDetail = XDocument.Parse(rs.GetAsXML()); XElement xEle = xDoc.Element("BOM").Element("BO").Element("opor").Element("row"); XElement xEleDetail = xDocDetail.Element("BOM").Element("BO").Element("por1"); foreach (var item in xEleDetail.Elements("row")) { PO_DETAIL model_detail = new PO_DETAIL() { LineNum = Convert.ToInt32(item.Element("LineNum").Value), ItemCode = item.Element("ItemCode").Value, Description = item.Element("dscription").Value, UomEntry = Convert.ToInt32(item.Element("UomEntry").Value), UomCode = item.Element("UomCode").Value, Quantity = Convert.ToDouble(item.Element("Quantity").Value), Price = Convert.ToDouble(item.Element("Price").Value), WarehouseCode = item.Element("WhsCode").Value, WarehouseName = item.Element("WhsName").Value }; details.Add(model_detail); } PO_HEADER model = new PO_HEADER() { PrimaryNumberingPOS = xEle.Element("U_PrimaryNumberingPOS").Value, DocumentNumberingPOS = xEle.Element("U_DocumentNumberingPOS").Value, DocEntry = xEle.Element("docentry").Value, DocNum = xEle.Element("docnum").Value, CardCode = xEle.Element("CardCode").Value, CardName = xEle.Element("CardName").Value, DocumentDate = DateTime.ParseExact(xEle.Element("DocDate").Value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None), DocDueDate = DateTime.ParseExact(xEle.Element("DocDueDate").Value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None), TaxDate = DateTime.ParseExact(xEle.Element("TaxDate").Value, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None), lines = details }; return(model); }
private void MapToDetailRow(PODetailRow row, PO_DETAIL entity) { row.Company = !string.IsNullOrEmpty(entity.CompanyCode) ? entity.CompanyCode : row.Company; row.PONUM = entity.PONum; row.POLine = entity.POLine; row.CalcTranType = !string.IsNullOrEmpty(entity.CalcTranType) ? entity.CalcTranType : row.CalcTranType; row.PartNum = entity.PartNum != null ? entity.PartNum : row.PartNum; row.QtyOption = !string.IsNullOrEmpty(entity.QtyOption) ? entity.QtyOption : row.QtyOption; row.CalcVendQty = entity.CalcVendQty; row.PUM = !string.IsNullOrEmpty(entity.PUM) ? entity.PUM : row.PUM; row.DocUnitCost = entity.DocUnitCost; row.DocScrUnitCost = entity.DocScrUnitCost; row.CalcDueDate = entity.CalcDueDate; row.Taxable = entity.Taxable; row.RcvInspectionReq = entity.RcvInspectionReq; }