private Document GetDocumentLineItem(DataSets.Order.CalculatedOrderDetailsRow row, Token lastToken, NorthwindConfig config) { #region Declarations LineItemDocument doc; string id; decimal discountPercentage; #endregion id = row.OrderID.ToString() + "-" + row.ProductID.ToString(); doc = new LineItemDocument(); doc.Id = id; if (lastToken.InitRequest) { doc.LogState = LogState.Created; } else if ((row.CreateID >= lastToken.SequenceNumber) && (row.CreateUser != config.CrmUser)) { doc.LogState = LogState.Created; } else if ((row.ModifyID >= lastToken.SequenceNumber) && (row.ModifyUser != config.CrmUser)) { doc.LogState = LogState.Updated; } doc.productid.Value = row.ProductID; //doc.orderquouteid.Value = row.OrderID; doc.uomid.Value = row.ProductID; doc.quantity.Value = row.IsQuantityNull() ? Convert.ToInt16(0) : row.Quantity; doc.listprice.Value = row.IsUnitPriceNull() ? new decimal(0) : row.UnitPrice; discountPercentage = row.IsDiscountNull() ? (decimal)0 : Convert.ToDecimal(row.Discount); //doc.discountsum.Value = (decimal)(short)doc.Quantity.Value * (decimal)doc.ListPrice.Value * discountPercentage; doc.discountsum.Value = (decimal)doc.listprice.Value * discountPercentage; doc.quotedprice.Value = (decimal)doc.listprice.Value * (1 - discountPercentage); //doc.quotedprice.Value = row.IsQuotePriceNull() ? new decimal(0) : Convert.ToDecimal(row.QuotePrice); doc.taxrate.Value = "0"; doc.tax.Value = new decimal(0); doc.quotedpricetotal.Value = Convert.ToDecimal(doc.quantity.Value) * Convert.ToDecimal(doc.quotedprice.Value); return(doc); }
private SalesInvoiceLinePayload GetLineItem(DataSets.Order.CalculatedOrderDetailsRow row, NorthwindConfig config) { #region Declarations SalesInvoiceLinePayload payload; string id; decimal discountPercentage; #endregion id = row.OrderID.ToString() + "-" + row.ProductID.ToString(); payload = new SalesInvoiceLinePayload(); payload.LocalID = id; //payload.SyncUuid = GetUuid(id, "", SupportedResourceKinds.salesOrderLines); payload.SalesInvoiceLinetype.applicationID = id; payload.ForeignIds.Add("commodity", row.ProductID.ToString()); payload.ForeignIds.Add("salesOrder", row.OrderID.ToString()); payload.ForeignIds.Add("unitOfMeasure", row.ProductID.ToString()); payload.SalesInvoiceLinetype.quantitySpecified = true; payload.SalesInvoiceLinetype.quantity = row.IsQuantityNull() ? Convert.ToInt16(0) : row.Quantity; payload.SalesInvoiceLinetype.initialPriceSpecified = true; payload.SalesInvoiceLinetype.initialPrice = row.IsUnitPriceNull() ? new decimal(0) : row.UnitPrice; payload.SalesInvoiceLinetype.invoiceLineDiscountPercentSpecified = true; payload.SalesInvoiceLinetype.invoiceLineDiscountPercent = row.IsDiscountNull() ? (decimal)0 : Convert.ToDecimal(row.Discount); payload.SalesInvoiceLinetype.discountTotalSpecified = true; payload.SalesInvoiceLinetype.discountTotal = (decimal)payload.SalesInvoiceLinetype.initialPrice * (decimal)payload.SalesInvoiceLinetype.invoiceLineDiscountPercent; payload.SalesInvoiceLinetype.costTotalSpecified = true; payload.SalesInvoiceLinetype.costTotal = (decimal)payload.SalesInvoiceLinetype.initialPrice * (1 - payload.SalesInvoiceLinetype.invoiceLineDiscountPercent); payload.SalesInvoiceLinetype.netTotalSpecified = true; payload.SalesInvoiceLinetype.netTotal = Convert.ToDecimal(payload.SalesInvoiceLinetype.quantity) * Convert.ToDecimal(payload.SalesInvoiceLinetype.costTotal); return(payload); }