public OrderExportDocument GetDocument(OrderType orderType, DocumentStatus status) { var nextId = GetNextOrderId(orderType, status); if (nextId != Guid.Empty) { var doc = _orderRepository.GetById(nextId); var exportdoc = new OrderExportDocument(); exportdoc.Id = doc.Id; exportdoc.ExternalRef = doc.ExternalDocumentReference; exportdoc.OrderDate = doc.DocumentDateIssued; exportdoc.OrderDueDate = doc.DateRequired; exportdoc.OrderRef = doc.DocumentReference; exportdoc.OutletCode = doc.IssuedOnBehalfOf.CostCentreCode; exportdoc.ShipToAddress = doc.ShipToAddress; exportdoc.OutletName = doc.IssuedOnBehalfOf.Name; exportdoc.Note = doc.Note; exportdoc.RouteName = GetOnBehalfOfCCRouteName(doc.Id);//GetOrderReference(nextId, orderType); exportdoc.TotalNet = doc.TotalNet; exportdoc.TotalVat = doc.TotalVat; exportdoc.TotalDiscount = doc.TotalDiscount; exportdoc.TotalGross = doc.TotalGross; if (doc.DocumentIssuerCostCentre is DistributorSalesman) { exportdoc.SalesmanCode = doc.DocumentIssuerCostCentre.CostCentreCode; exportdoc.SalesmanName = doc.DocumentIssuerCostCentre.Name; } else { exportdoc.SalesmanCode = doc.DocumentRecipientCostCentre.CostCentreCode; exportdoc.SalesmanName = doc.DocumentRecipientCostCentre.Name; } foreach (var item in doc.ItemSummary) { var exportItem = new OrderExportDocumentItem(); exportItem.ProductCode = item.Product.ProductCode; exportItem.Quantity = item.Qty; exportItem.Price = item.Value; exportItem.VatClass = item.Product.VATClass != null ? item.Product.VATClass.Name : ""; exportItem.VatPerUnit = item.VatValue; exportItem.ProductDiscount = item.ProductDiscount ; exportItem.LineItemTotalNet = item.TotalNet; exportItem.LineItemTotalVat = item.TotalVat; exportItem.LineItemTotalGross = item.TotalGross; exportdoc.LineItems.Add(exportItem); } return exportdoc; } return null; }
public List<Guid> SaveToLocal(OrderExportDocument document,TransactionType type) { var savedIds = new List<Guid>(); var result = 0; using (var db=new AlidiLocalImportDatabaseContext()) { //Find if the ExternalRef is present in local db so that we can mark it as exported in hq, //So that it is never exported again if(db.TransactionImports.Any(p=>p.ExternalRef==document.ExternalRef)) { var confirmListBypass = new List<Guid>(); confirmListBypass.Add(Guid.NewGuid()); return confirmListBypass; } foreach (var lineItem in document.LineItems) { var id = Guid.NewGuid(); var transactionImport = new TransactionImport(); transactionImport.Id = id; transactionImport.OutletCode = document.OutletCode; transactionImport.OutletName = document.OutletName; transactionImport.ExternalRef = document.ExternalRef; transactionImport.GenericRef = document.OrderRef; //var date = Convert.ToDateTime(document.OrderDate); //var date2 = DateTime.Parse(document.OrderDate); transactionImport.TransactionIssueDate = document.OrderDate; transactionImport.TransactionDueDate = document.OrderDueDate; transactionImport.TransactionType = (int)type; //LineItems transactionImport.ProductCode = lineItem.ProductCode; transactionImport.Quantity = lineItem.Quantity; transactionImport.TotalNet = lineItem.LineItemTotalNet; transactionImport.TotalVat = lineItem.VatPerUnit; transactionImport.VatClass = lineItem.VatClass; transactionImport.SalesmanCode = document.SalesmanCode; transactionImport.LineItemValue = lineItem.Price; transactionImport.ExportStatus=(int)ExportStatus.New; db.TransactionImports.Add(transactionImport); savedIds.Add(id); } result=db.SaveChanges(); } if (result > 0) { return savedIds; } return null; }
private SyncBasicResponse Export(OrderExportDocument doc) { if (!OrderRefExist(doc.ExternalRef)) { Documents oOrder = (Documents)Company.GetBusinessObject(BoObjectTypes.oOrders); // set properties of the Order object oOrder.CardCode = doc.OutletCode; //CustomerCode; // oOrder.CardName = outlet.Field2; //CustomerName; oOrder.NumAtCard = doc.ExternalRef; //txtReference.Text; oOrder.HandWritten = BoYesNoEnum.tYES; //chkManual order reference generation oOrder.DocNum = GetDocNum(); //document number; oOrder.DocDate = doc.OrderDate; // DatePosting.Value; oOrder.DocDueDate = doc.OrderDueDate; // DatePosting.Value; foreach (var lineItem in doc.LineItems) { var warehouse = doc.SalesmanCode; oOrder.Lines.ItemCode = lineItem.ProductCode; // oOrder.Lines.ItemDescription = lineItem.ProductDescription; oOrder.Lines.Quantity = decimal.ToDouble(lineItem.Quantity); oOrder.Lines.TaxCode = lineItem.VatClass; oOrder.Lines.UnitPrice =decimal.ToDouble( lineItem.Price); oOrder.Lines.UseBaseUnits = BoYesNoEnum.tYES; oOrder.Lines.TaxTotal = decimal.ToDouble(lineItem.VatPerUnit * lineItem.Quantity); oOrder.Lines.WarehouseCode = warehouse; oOrder.Lines.Add(); } var lRetCode = oOrder.Add(); // Try to add the orer to the database oOrder = null; int lErrCode = 0; string sErrMsg = ""; if (lRetCode != 0) { int temp_int = lErrCode; string temp_string = sErrMsg; Company.GetLastError(out temp_int, out temp_string); if (lErrCode != -4006) // Incase adding an order failed { //MessageBox.Show(lErrCode + " " + temp_string); // Display error message return new SyncBasicResponse { Status = false, Info = lErrCode + " " + temp_string }; } else // If the currency Exchange is not set { double dCur; object sCur; sCur = 1.0; if (double.TryParse(sCur.ToString(), out dCur)) { dCur = Convert.ToDouble(sCur); var oBob = (SBObob)Company.GetBusinessObject(BoObjectTypes.BoBridge); //Update Currency rate //oBob.SetCurrencyRate(priceObject.Field2, DateTime.Today, dCur, false); } else { return new SyncBasicResponse{Status = false,Info = "Invalid Value to Currency Exchange"}; } } } _sapWebProxy.MarkOrderAsExported(doc.ExternalRef); return new SyncBasicResponse { Status = true, Info = string.Format("Order {0} inserted to SAP successfully", doc.ExternalRef) }; } return new SyncBasicResponse { Status = false, Info = string.Format("Order {0} exist in SAP ", doc.ExternalRef) }; }
public void SaveToQuickBooks(OrderExportDocument orderExportDocument) { throw new NotImplementedException(); }
public List<Guid> SaveToLocal(OrderExportDocument document, OrderType orderType) { var savedIds = new List<Guid>(); var result = 0; using (var db=new AlidiLocalImportDatabaseContext()) { //Find if the ExternalRef is present in local db so that we can mark it as exported in hq, //So that it is never exported again if (db.OrderImportLocal.Any(p => p.OrderExternalRef == document.ExternalRef)) { var confirmListBypass = new List<Guid>(); confirmListBypass.Add(Guid.NewGuid()); return confirmListBypass; } var orderImport = new OrderImportLocal(); orderImport.OrderExternalRef = document.ExternalRef; orderImport.OrderRef = document.OrderRef; orderImport.OrderType =(int) orderType; orderImport.OutletCode = document.OutletCode; orderImport.OutletName = document.OutletName; orderImport.OrderDate = document.OrderDate; orderImport.OrderDueDate = document.OrderDueDate; orderImport.RouteName = document.RouteName; orderImport.TotalDiscount = document.TotalDiscount; orderImport.TotalGross = document.TotalGross; orderImport.TotalNet = document.TotalNet; orderImport.TotalVat = document.TotalVat; orderImport.ShipToAddress = document.ShipToAddress; orderImport.DateOfImport = DateTime.Now; orderImport.ExportStatus = (int) ExportStatus.New; db.OrderImportLocal.Add(orderImport); db.SaveChanges(); foreach (var item in document.LineItems) { var id = Guid.NewGuid(); var orderItem = new OrderLineItemLocal(); orderItem.LineItemId=id; orderItem.OrderExternalRef = document.ExternalRef; orderItem.LineItemTotalGross = item.LineItemTotalGross; orderItem.LineItemTotalNet = item.LineItemTotalNet; orderItem.LineItemTotalVat = item.LineItemTotalVat; orderItem.Price = item.Price; orderItem.ProductCode = item.ProductCode; orderItem.VatClass = item.VatClass; orderItem.VatPerUnit = item.VatPerUnit; orderItem.DateOfImport = DateTime.Now; orderItem.ExportStatus = (int) ExportStatus.New; db.OrderLineItemLocal.Add(orderItem); savedIds.Add(id); } result = db.SaveChanges(); } if(result>0) { return savedIds; } return null; }