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; }
public void MarkExportedLocal(string externalDocRef, string qbOrderTransactionId) { using (var db = new AlidiLocalImportDatabaseContext()) { try { var orderImport = db.OrderImportLocal.FirstOrDefault(p => p.OrderExternalRef == externalDocRef); if (orderImport != null) { orderImport.QbOrderTransactionId = qbOrderTransactionId; orderImport.ExportStatus = (int) ExportStatus.Exported; orderImport.DateOfExport = DateTime.Now; } db.SaveChanges(); var orderLineItems = db.OrderLineItemLocal.Where(p => p.OrderExternalRef == externalDocRef); foreach (var orderLineItem in orderLineItems) { orderLineItem.ExportStatus = (int)ExportStatus.Exported; orderLineItem.DateOfExport = DateTime.Now; db.SaveChanges(); } } catch (Exception ex) { throw; } } }
public List<QuickBooksOrderDocLineItem> GetLineItems(string externalReference) { var docList = new List<QuickBooksOrderDocLineItem>(); using (var db = new AlidiLocalImportDatabaseContext()) { var lineItems= db.OrderLineItemLocal.Where(p => p.OrderExternalRef == externalReference).ToList(); return lineItems.Select(MapLineItem).ToList(); } }
public List<OrderExportDocument> LoadFromDB(OrderType type) { using(var db=new AlidiLocalImportDatabaseContext()) { var orders = db.OrderImportLocal.Where(p => p.OrderType == (int)type && p.ExportStatus == (int)ExportStatus.New).ToList(); return orders.Select(Map).ToList(); } }
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; }
private string GetNextExternalRef(TransactionType type) { using (var db=new AlidiLocalImportDatabaseContext()) { // var query = string.Format(@"SELECT top 1 ExternalRef FROM tblTransactionImports // WHERE (TransactionType={0} // AND ExportStatus ={1} )", // (int)type, (int)ExportStatus.New); var externalRef =db.TransactionImports.Where(p => p.TransactionType == (int) type && p.ExportStatus == (int)ExportStatus.New).Select(p=>p.ExternalRef).FirstOrDefault(); return externalRef; } }
//public List<OrderExportDocument> LoadFromDB(TransactionType type) //{ // var listOfDocs = new List<OrderExportDocument>(); // using (var db = new AlidiLocalDatabaseContext()) // { // var nextRef = GetNextExternalRef(type); // var docs = db.TransactionImports.Where(p => p.ExternalRef == nextRef);//.GroupBy(p=>p.ExternalRef).ToList(); // listOfDocs = docs.Select(Map).ToList(); // } //} public List<TransactionImport> LoadFromDB(TransactionType type) { List<TransactionImport> listOfDocs; using (var db = new AlidiLocalImportDatabaseContext()) { var nextRef = GetNextExternalRef(type); listOfDocs = db.TransactionImports.Where(p => p.ExportStatus == (int)ExportStatus.New && p.TransactionType == (int)type).ToList(); return listOfDocs; //listOfDocs = docs.Select(Map).ToList(); } }
public void MarkExportedLocal(string externalDocRef) { using (var db=new AlidiLocalImportDatabaseContext()) { try { var transactions = db.TransactionImports.Where(p => p.ExternalRef == externalDocRef); foreach (var transactionImport in transactions) { transactionImport.ExportStatus =(int) ExportStatus.Exported; db.SaveChanges(); } } catch (Exception ex) { throw; } } }