public void SynchronizePresalerSchedule(Action <string, string, double> progressAction) { string res = ""; DataTable dt = null; NavDbController.Current.getPresalersBudgetDemansions(ref res, ref dt); if (!string.IsNullOrEmpty(res)) { throw new PosException(res); } POSMng.POSMng service = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; var cnt = dt.Rows.Count; var i = 0; foreach (DataRow r in dt.Rows) { i++; progressAction(null, "Synchronizing PresalersBudges", 80); var region_no = r["RegionCode"].ToString(); decimal badgetamount = 0; decimal actualAmount = 0; string ragion_name = ""; service.GetSalesPersFinDetails(PosSetting.Settings_SalesPersonCode, region_no, ref badgetamount, ref actualAmount, ref ragion_name, DateTime.Now.Date); DaoController.Current.SyncPresalersBudges(r, badgetamount, actualAmount); } }
public void SynchronizeCustomersOnepresalers(Action <string, string, double> progressAction, PosUserTypes userType) { string res = ""; DataTable dt = null; DataTable dtdam = null; switch (userType) { case PosUserTypes.Distributor: NavDbController.Current.getCustomersForDistibutor(ref res, ref dtdam); break; case PosUserTypes.PreSaler: NavDbController.Current.getCustomersForPresaler(ref res, ref dtdam); break; case PosUserTypes.Manager: NavDbController.Current.getCustomers(ref res, ref dtdam); break; case PosUserTypes.Shop: NavDbController.Current.getCustomersAll(ref res, ref dtdam); break; } if (!string.IsNullOrEmpty(res)) { throw new PosException(res); } POSMng.POSMng service = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; var cnt = dtdam.Rows.Count; int i = 0; foreach (DataRow r in dtdam.Rows) { i++; progressAction(null, "Synchronizing Customers with one presalers", 20 + i * 20.0 / cnt); var customer_no = r["No_"].ToString(); decimal balanceAmount = 0; decimal salesBudgetAmount = 0; decimal salesActualAmount = 0; decimal recommendedSalesAmount = 0; int recommendedVisitsMonth = 0; service.GetCustomerFinDetails(customer_no, ref balanceAmount, ref salesBudgetAmount, ref salesActualAmount, ref recommendedSalesAmount, ref recommendedVisitsMonth, DateTime.Now.Date); DaoController.Current.SyncCustomers(r, balanceAmount, salesBudgetAmount, salesActualAmount, recommendedSalesAmount, recommendedVisitsMonth, null); NavDbController.Current.getCustomerShippingAddresses(ref res, customer_no, ref dt); if (!string.IsNullOrEmpty(res)) { throw new PosException(res); } DaoController.Current.SyncShipToAddress(dt); } }
public bool IsOrderWaybillUploaded(int orderType, string orderNo) { POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; return(pc.OrderWaybillUploaded(orderType, orderNo)); }
public string GetItemInventoryByLocations(string itemNo) { POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; return(pc.GetItemInventoryByLocations(itemNo)); }
public void SendNewMessages() { var newMessages = DaoController.Current.GetNewMessages(); POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; foreach (var message in newMessages) { var entryNo = pc.CreatePOSMessage(message.SenderID, message.ReceiverID, message.Text); DaoController.Current.UpdateMessageEntryNo(message.Id, entryNo); } }
public void SendLikes() { var likes = DaoController.Current.GetNewLikes(); POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; foreach (var like in likes) { pc.CreateCustItemLike(like.CustomerNo_, like.ItemNo_, like.Like == true); DaoController.Current.SetLikeSent(like.CustomerNo_, like.ItemNo_); } }
public void SendComments() { POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; var list = DaoController.Current.GetNewComments(); foreach (var c in list) { pc.CreateItemComment(c.No_, c.Comment, c.Date); } DaoController.Current.UpdateNewCommentStatuses(); }
public void SynchronizeCustomersManypresalers(Action <string, string, double> progressAction) { string res = ""; DataTable dt = null; DataTable dtdam = null; NavDbController.Current.getSalesPersonShippingAddresses(ref res, ref dt); if (!string.IsNullOrEmpty(res)) { throw new PosException(res); } DaoController.Current.SyncShipToAddress(dt); POSMng.POSMng service = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; var cnt = dt.Rows.Count; int i = 0; foreach (DataRow r in dt.Rows) { i++; progressAction(null, "Synchronizing Customers with many presalers", 40 + i * 10.0 / cnt); var customer_no = r["Customer No_"].ToString(); decimal balanceAmount = 0; decimal salesBudgetAmount = 0; decimal salesActualAmount = 0; decimal recommendedSalesAmount = 0; int recommendedVisitsMonth = 0; NavDbController.Current.getCustomer(ref res, customer_no, ref dtdam); service.GetCustomerFinDetails(customer_no, ref balanceAmount, ref salesBudgetAmount, ref salesActualAmount, ref recommendedSalesAmount, ref recommendedVisitsMonth, DateTime.Now.Date); var r1 = dtdam.Rows[0]; var cst = DaoController.Current.GetCustomer(r1["No_"].ToString()); if (cst == null) { DaoController.Current.SyncCustomers(r1, balanceAmount, salesBudgetAmount, salesActualAmount, recommendedSalesAmount, recommendedVisitsMonth, r["Visit Week Days"].ToString()); } } //Synchronize payment schedules NavDbController.Current.getSalesPersonShippingAddressesGrouped(ref res, ref dt); if (!string.IsNullOrEmpty(res)) { throw new PosException(res); } }
public void SendCustomers() { var customers = DaoController.Current.GetNewCustomers(); POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; foreach (var customer in customers) { var newCode = pc.CreateNewCustomerNew(customer.Name, customer.VATRegistrationNo_, customer.NeedsVATInvoice.Value, customer.Contact, NullToEmpty(customer.PhoneNo_), NullToEmpty(customer.Address), NullToEmpty(customer.ShipToAddress), NullToEmpty(customer.City), NullToEmpty(customer.Country_RegionCode), PosSetting.Settings_SalesPersonCode, NullToEmpty(customer.PostCode), customer.Mobile_, NullToEmpty(customer.AreaCode), customer.Customer_Posting_Group); DaoController.Current.UpdateCustomerStatus(customer.No_, newCode); } }
public void SendGeneralGenJurnals() { var jurnals = DaoController.Current.GetGeneralGenJournalLines(); POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; foreach (var g in jurnals) { pc.CreatePaymentLine(1, g.DocumentNo, g.Amount.Value, PosSetting.Settings_JnlTemplateName, PosSetting.Settings_JnlBatchName, g.PostingDate.Value, g.AccountType.Value, g.AccountNo_, g.Bal_AccountType.Value, g.Bal_AccountNo_, PosSetting.Settings_ResponsibilityCenter, g.PaymentMethodCode, PosSetting.Settings_SalesPersonCode); } DaoController.Current.PostGeneralJournalLines(); }
private List <RemainingItemEntry> SendOrder(SalesHeader h) { List <RemainingItemEntry> remainingItems = new List <RemainingItemEntry>(); POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; salesorderservice.SalesOrder_Service client = new salesorderservice.SalesOrder_Service { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl1 }; salesquoteservice.SalesQuote_Service qClient = new salesquoteservice.SalesQuote_Service { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl3 }; salesordersubform.SalesOrderLine_Service lineclient = new salesordersubform.SalesOrderLine_Service { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl2 }; if (h.OkSalesLines.Count > 0) { bool shemovida = false; foreach (var l in h.OkSalesLines) { var item = DaoController.Current.GetItem(l.No_); var quantity = (item != null && item.ItemType == 1) ? decimal.MaxValue : pc.CalcItemInventoryByLocation(l.No_, l.LocationCode); if (l.Quantity > quantity) { //AddRemainingEntires(remainingItems, new RemainingItemEntry //{ // OrderNo = h.No_, // ItemNo = l.No_, // ItemDesc = l.LargeDescription, // RequestedQuantity = quantity, // RemainingQuantity = 0 //}); h.SalesLines.Add(new SalesLine { DocumentNo_ = h.No_, DocumentType = 1, LineNo_ = h.SalesLines.Max(i => i.LineNo_) + 1, Type = 2, No_ = l.No_, Description = l.Description, Quantity = l.Quantity.Value - quantity, UnitPrice = l.UnitPrice, Sell_toCustomerNo = h.Sell_toCustomerNo, LargeDescription = l.LargeDescription, LocationCode = l.LocationCode, AmountIncludingVAT = 0, UnitOfMeasureCode = l.UnitOfMeasureCode, OrderType = 1, LineDiscountAmount = 0, LineDiscountPercent = 0 }); DaoController.Current.AddSalesLine(h.SalesLines.Last()); l.Quantity = quantity; l.AmountIncludingVAT = Math.Round(l.Quantity.Value * l.UnitPrice.Value, 2, MidpointRounding.AwayFromZero); } if (l.Quantity > 0) { if (!shemovida) { salesorderservice.SalesOrder s = new salesorderservice.SalesOrder { No = h.No_ }; client.Create(ref s); //s.Document_Type = salesorderservice.Document_Type.Order; s.Sell_to_Customer_No = h.Sell_toCustomerNo; s.Salesperson_Code = PosSetting.Settings_SalesPersonCode; s.Responsibility_Center = PosSetting.Settings_ResponsibilityCenter; s.Posting_Date = h.PostingDate.Value.Date; s.POS_Order_No = h.No_; s.POS_Order_Type = salesorderservice.POS_Order_Type.Order; s.Ship_to_Code = h.Ship_toAddressCode; client.Update(ref s); shemovida = true; } AddRemainingEntires(remainingItems, new RemainingItemEntry { OrderNo = h.No_, ItemNo = l.No_, ItemDesc = l.LargeDescription, RequestedQuantity = l.Quantity.Value, RemainingQuantity = 0 }); pc.CreateSalesLine(l.DocumentType, h.No_, l.LineNo_, l.Type.Value, l.No_, l.LocationCode, l.UnitOfMeasureCode, l.UnitPrice.Value, l.Quantity.Value, l.LineDiscountPercent.Value, l.LineDiscountAmount.Value, Convert.ToDateTime(h.OrderStartDate).ToUniversalTime(), Convert.ToDateTime(h.OrderClosedDate).ToUniversalTime(), h.OrderDuraction, NullToEmpty(l.Service_Provider), NullToEmpty(l.Customer_Vehicle)); } } if (shemovida) { pc.ReleaseSalesOrder(1, h.No_); pc.CreateWhsShipment(1, h.No_); foreach (var g in h.PaymentSchedules) { pc.CreatePaySchedLine(h.Sell_toCustomerNo, h.No_, g.Date.Value, g.Amount.Value); } foreach (var g in h.JournalLines) { pc.CreatePaymentLine(1, h.No_, g.Amount.Value, PosSetting.Settings_JnlTemplateName, PosSetting.Settings_JnlBatchName, g.PostingDate.Value, g.AccountType.Value, g.AccountNo_, g.Bal_AccountType.Value, g.Bal_AccountNo_, PosSetting.Settings_ResponsibilityCenter, g.PaymentMethodCode, PosSetting.Settings_SalesPersonCode); } } } if (h.QSalesLines.Count > 0) { var no = DaoController.Current.GenerateNewKey(PosSetting.Settings_SalesHeaderNumberCount, PosSetting.Settings_QoutePrefix); salesquoteservice.SalesQuote q = new salesquoteservice.SalesQuote { No = no }; qClient.Create(ref q); q.Sell_to_Customer_No = h.Sell_toCustomerNo; q.Salesperson_Code = PosSetting.Settings_SalesPersonCode; q.Responsibility_Center = PosSetting.Settings_ResponsibilityCenter; q.Posting_Date = h.PostingDate.Value.Date; q.POS_Order_No = no; q.POS_Order_Type = salesquoteservice.POS_Order_Type.Order; q.Ship_to_Code = h.Ship_toAddressCode; qClient.Update(ref q); foreach (var l in h.QSalesLines) { pc.CreateSalesLine(0, no, l.LineNo_, l.Type.Value, l.No_, l.LocationCode, l.UnitOfMeasureCode, l.UnitPrice.Value, l.Quantity.Value, l.LineDiscountPercent.Value, l.LineDiscountAmount.Value, Convert.ToDateTime(h.OrderStartDate).ToUniversalTime(), Convert.ToDateTime(h.OrderClosedDate).ToUniversalTime(), h.OrderDuraction, NullToEmpty(l.Service_Provider), NullToEmpty(l.Customer_Vehicle) ); var quantity = pc.CalcItemInventoryByLocation(l.No_, l.LocationCode); AddRemainingEntires(remainingItems, new RemainingItemEntry { OrderNo = h.No_, ItemNo = l.No_, ItemDesc = l.LargeDescription, RequestedQuantity = l.Quantity.Value, RemainingQuantity = l.Quantity.Value - quantity }); //remainingItems.Add(new RemainingItemEntry //{ // OrderNo = h.No_, // ItemNo = l.No_, // ItemDesc = l.LargeDescription, // RequestedQuantity = l.Quantity.Value, // RemainingQuantity = l.Quantity.Value - quantity //}); } pc.ReleaseSalesOrder(0, no); } if (h.CQSalesLines.Count > 0) { var no = DaoController.Current.GenerateNewKey(PosSetting.Settings_SalesHeaderNumberCount, PosSetting.Settings_ConcurrentQoutePrefix); salesquoteservice.SalesQuote q = new salesquoteservice.SalesQuote { No = no }; qClient.Create(ref q); q.Sell_to_Customer_No = h.Sell_toCustomerNo; q.Salesperson_Code = PosSetting.Settings_SalesPersonCode; q.Responsibility_Center = PosSetting.Settings_ResponsibilityCenter; q.Posting_Date = h.PostingDate.Value.Date; q.POS_Order_No = no; q.POS_Order_Type = salesquoteservice.POS_Order_Type.Order; q.Ship_to_Code = h.Ship_toAddressCode; qClient.Update(ref q); foreach (var l in h.CQSalesLines) { pc.CreateSalesLine(0, no, l.LineNo_, l.Type.Value, l.No_, l.LocationCode, l.UnitOfMeasureCode, l.UnitPrice.Value, l.Quantity.Value, l.LineDiscountPercent.Value, l.LineDiscountAmount.Value, Convert.ToDateTime(h.OrderStartDate).ToUniversalTime(), Convert.ToDateTime(h.OrderClosedDate).ToUniversalTime(), h.OrderDuraction, NullToEmpty(l.Service_Provider), NullToEmpty(l.Customer_Vehicle)); } pc.ReleaseSalesOrder(0, no); } if (h.SPSalesLines.Count > 0) { var no = DaoController.Current.GenerateNewKey(PosSetting.Settings_SalesHeaderNumberCount, PosSetting.Settings_SpecOrderPrefix); salesorderservice.SalesOrder s = new salesorderservice.SalesOrder { No = no }; client.Create(ref s); //s.Document_Type = salesorderservice.Document_Type.Order; s.Sell_to_Customer_No = h.Sell_toCustomerNo; s.Salesperson_Code = PosSetting.Settings_SalesPersonCode; s.Responsibility_Center = PosSetting.Settings_ResponsibilityCenter; s.Posting_Date = h.PostingDate.Value.Date; s.POS_Order_No = no; s.POS_Order_Type = salesorderservice.POS_Order_Type.Order; s.Ship_to_Code = h.Ship_toAddressCode; s.Transport_Method = "1"; client.Update(ref s); foreach (var l in h.SPSalesLines) { pc.CreateSalesLine(l.DocumentType, no, l.LineNo_, l.Type.Value, l.No_, l.LocationCode, l.UnitOfMeasureCode, l.UnitPrice.Value, l.Quantity.Value, l.LineDiscountPercent.Value, l.LineDiscountAmount.Value, Convert.ToDateTime(h.OrderStartDate).ToUniversalTime(), Convert.ToDateTime(h.OrderClosedDate).ToUniversalTime(), h.OrderDuraction, NullToEmpty(l.Service_Provider), NullToEmpty(l.Customer_Vehicle)); } pc.ReleaseSalesOrder(1, no); } DaoController.Current.PostSalesHeader(h); return(remainingItems.Where(r => r.RemainingQuantity > 0).ToList()); }
public void SaveNavOrder(ReleasedSalesHeader h /*, List<ReleasedSalesLine> lines, List<ReleasedPaymentSchedule> schedules,List<ReleasedGenJournalLine> genjournal*/) { POSMng.POSMng pc = new POSMng.POSMng { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl }; salesorderservice.SalesOrder_Service client = new salesorderservice.SalesOrder_Service { UseDefaultCredentials = false, Credentials = new System.Net.NetworkCredential(PosSetting.Settings_DomainUserName, PosSetting.Settings_DomainPassword, PosSetting.Settings_DomainName), Url = PosSetting.Settings_PosServiceUrl1 }; pc.ReopenSalesOrder(h.DocumentType, h.No_); //pc.DeleteSalesOrder(1, h.No_); //salesorderservice.SalesOrder s = new salesorderservice.SalesOrder //{ // No = h.No_ //}; //client.Create(ref s); //s.Document_Type = salesorderservice.Document_Type.Order; //s.Sell_to_Customer_No = h.Sell_toCustomerNo; //s.Salesperson_Code = PosSetting.Settings_SalesPersonCode; //s.Responsibility_Center = PosSetting.Settings_ResponsibilityCenter; //s.Posting_Date = h.PostingDate.Value.Date; //s.POS_Order_No = h.No_; //s.POS_Order_Type = salesorderservice.POS_Order_Type.Order; //client.Update(ref s); List <RemainingItemEntry> RemainingItems = new List <RemainingItemEntry>(); foreach (var l in h.SalesLines.Where(i => i.IsNew).ToList()) { var item = DaoController.Current.GetItem(l.No_); var quantity = (item != null && item.ItemType == 1) ? decimal.MaxValue : pc.CalcItemInventoryByLocation(l.No_, l.LocationCode); if (l.Quantity > quantity) { RemainingItems.Add(new RemainingItemEntry { OrderNo = h.No_, ItemNo = l.No_, ItemDesc = l.Description, RequestedQuantity = l.Quantity.Value, RemainingQuantity = l.Quantity.Value - quantity }); l.Quantity = quantity; } if (l.Quantity > 0) { pc.CreateSalesLine(l.DocumentType, h.No_, l.LineNo_, l.Type.Value, l.No_, l.LocationCode, l.UnitOfMeasureCode, l.UnitPrice.Value, l.Quantity.Value, l.LineDiscountPercent.Value, l.LineDiscountAmount.Value, Convert.ToDateTime(h.OrderStartDate), Convert.ToDateTime(h.OrderClosedDate), "0:00", NullToEmpty(l.Service_Provider), NullToEmpty(l.Customer_Vehicle)); } } pc.ReleaseSalesOrder(h.DocumentType, h.No_); pc.CreateWhsShipment(h.DocumentType, h.No_); //foreach(var g in h.PaymentSchedules) //{ // pc.CreatePaySchedLine(h.Sell_toCustomerNo, h.No_, g.Date.Value, g.Amount.Value); //} //foreach (var g in h.PaymentLines) //{ // pc.CreatePaymentLine(1, h.No_, g.Amount.Value, PosSetting.Settings_JnlTemplateName, PosSetting.Settings_JnlBatchName, g.PostingDate.Value, g.AccountType.Value, g.AccountNo_, g.Bal_AccountType.Value, g.Bal_AccountNo_, PosSetting.Settings_ResponsibilityCenter, g.PaymentMethodCode, PosSetting.Settings_SalesPersonCode); //} }