Example #1
0
        private async void TileRetailer_OnClick(object sender, RoutedEventArgs e)
        {
            var customer = DaoController.Current.GetCustomer(App.Current.PosSetting.Settings_GenCustomerCode);

            if (customer == null)
            {
                App.Current.ShowErrorDialog("საცალო კლიენტი ვერ მოიძებნა ბაზაში!", "");
            }
            else
            {
                var order = new SalesHeader
                {
                    No_                 = DaoController.Current.GenerateNewKey(App.Current.PosSetting.Settings_SalesHeaderNumberCount),
                    DocumentType        = 1,
                    PostingDate         = DateTime.Now,
                    Sell_toCustomerNo   = customer.No_,
                    Sell_toCustomerName = customer.Name,
                    CustomerPriceGroup  = customer.CustomerPriceGroup,
                    SalespersonCode     = App.Current.PosSetting.Settings_SalesPersonCode,
                    SalesLines          = new List <SalesLine>(),
                    JournalLines        = new List <GenJournalLine>(),
                    PaymentSchedules    = new List <DataLayer.PaymentSchedule>(),
                    CurrentCustomer     = customer
                };
                // Order.Current.SetHeaders("ახალი შეკვეთა", new List<string>() { "დღის განრიგი" });
                Order.Current.PrevUserControl = UserControlTypes.Customers;
                NavigateToControl(UserControlTypes.Order, new OrderViewModel(order, true));
            }
        }
Example #2
0
        public void AddCustomerandSaleHeader()
        {
            FFREntities ffrDb = new FFREntities();

            Customer customer = new Customer();

            customer.CustomerId = 1;
            customer.FirstName  = "Nick";
            customer.LastName   = "Olsen";
            customer.City       = "Parker";
            customer.State      = "CO";
            customer.Zip        = "80134";
            //Need to Add Street Name and Suite Fields
            customer.Address = customer.FirstName + " " + customer.LastName + "11321 Lovage Way " + customer.City + ", " + customer.State + " " + customer.Zip;
            customer.Phone   = "3037181336";
            customer.Email   = "*****@*****.**";

            ffrDb.Customers.Add(customer);
            ffrDb.SaveChanges();

            SalesHeader salesHeader = new SalesHeader();

            salesHeader.CustomerId        = customer.CustomerId;
            salesHeader.SalesStatus       = "Open";
            salesHeader.OrderSalesBalance = 50;
            salesHeader.OrderTaxAmount    = 5;
            salesHeader.OrderTotal        = salesHeader.OrderSalesBalance + salesHeader.OrderTaxAmount;

            ffrDb.SalesHeaders.Add(salesHeader);
            ffrDb.SaveChanges();
        }
Example #3
0
        private SapSalesOrder setSalesOrder()
        {
            SapSalesOrder        _SapSalesOrder = new SapSalesOrder();
            List <SalesItem>     _ItemList      = new List <SalesItem>();
            List <SalesPartner>  _PartnerList   = new List <SalesPartner>();
            List <SalesSchedule> _ScheduleList  = new List <SalesSchedule>();
            SalesHeader          _Header        = new SalesHeader();

            _Header.DOC_TYPE      = "ZOR3";
            _Header.SALES_ORG     = "1000";
            _Header.DISTR_CHAN    = "10";
            _Header.DIVISION      = "13";
            _Header.PURCH_NO_C    = "C#";
            _SapSalesOrder.Header = _Header;
            SalesItem _Item = new SalesItem();

            _Item.ITM_NUMBER = "000010";
            _Item.MATERIAL   = "12-04BFFB-SL7001";
            _Item.TARGET_QTY = "555";
            _ItemList.Add(_Item);
            SalesItem _Item2 = new SalesItem();

            _Item2.ITM_NUMBER = "000020";
            _Item2.MATERIAL   = "ADC-07PMMS-LS7001";
            _Item2.TARGET_QTY = "100";
            _ItemList.Add(_Item2);
            _SapSalesOrder.ItemList = _ItemList;
            SalesPartner _Partner = new SalesPartner();

            _Partner.PARTN_ROLE = "AG";
            _Partner.PARTN_NUMB = "0010000242";
            _PartnerList.Add(_Partner);
            _SapSalesOrder.PartnerList = _PartnerList;
            SalesSchedule _Schedule = new SalesSchedule();

            _Schedule.REQ_QTY    = "555";
            _Schedule.ITM_NUMBER = "000010";
            _Schedule.SCHED_LINE = "0001";
            _Schedule.REQ_DATE   = "20190920";
            _ScheduleList.Add(_Schedule);
            SalesSchedule _Schedule2 = new SalesSchedule();

            _Schedule2.REQ_QTY    = "50";
            _Schedule2.ITM_NUMBER = "000020";
            _Schedule2.SCHED_LINE = "0001";
            _Schedule2.REQ_DATE   = "20190923";
            _ScheduleList.Add(_Schedule2);
            SalesSchedule _Schedule3 = new SalesSchedule();

            _Schedule3.REQ_QTY    = "50";
            _Schedule3.ITM_NUMBER = "000020";
            _Schedule3.SCHED_LINE = "0002";
            _Schedule3.REQ_DATE   = "20190928";
            _ScheduleList.Add(_Schedule3);
            _SapSalesOrder.ScheduleList = _ScheduleList;

            return(_SapSalesOrder);
        }
        private static SalesHeader SalesHeaderPoco(DataRow r)
        {
            var i = new SalesHeader
            {
                SalesOrderId     = (int)r["SalesOrderId"],
                RevisionNumber   = (byte)r["RevisionNumber"],
                OrderDate        = (DateTime)r["OrderDate"],
                DueDate          = (DateTime)r["DueDate"],
                ShipDate         = (DateTime)r["ShipDate"],
                Status           = (byte)r["Status"],
                OnlineOrderFlag  = (bool)r["OnlineOrderFlag"],
                SalesOrderNumber = (string)r["SalesOrderNumber"],
                CustomerId       = (int)r["CustomerId"],
                BillToAddressId  = (int)r["BillToAddressId"],
                ShipToAddressId  = (int)r["ShipToAddressId"],
                ShipMethodId     = (int)r["ShipMethodID"],
                SubTotal         = (decimal)r["SubTotal"],
                TaxAmt           = (decimal)r["TaxAmt"],
                Freight          = (decimal)r["Freight"],
                TotalDue         = (decimal)r["TotalDue"],
                Rowguid          = r["rowguid"].ToString(),
                ModifiedDate     = (DateTime)r["ModifiedDate"]
            };

            if (!r.IsNull("PurchaseOrderNumber"))
            {
                i.PurchaseOrderNumber = (string)r["PurchaseOrderNumber"];
            }
            if (!r.IsNull("AccountNumber"))
            {
                i.AccountNumber = (string)r["AccountNumber"];
            }
            if (!r.IsNull("TerritoryId"))
            {
                i.TerritoryId = (int)r["TerritoryId"];
            }
            if (!r.IsNull("SalesPersonID"))
            {
                i.SalesPersonId = (int)r["SalesPersonID"];
            }
            if (!r.IsNull("CreditCardID"))
            {
                i.CreditCardId = (int)r["CreditCardID"];
            }
            if (!r.IsNull("CreditCardApprovalCode"))
            {
                i.CreditCardApprovalCode = (string)r["CreditCardApprovalCode"];
            }
            if (!r.IsNull("CurrencyRateID"))
            {
                i.CurrencyRateId = (int)r["CurrencyRateID"];
            }
            if (!r.IsNull("Comment"))
            {
                i.Comment = (string)r["Comment"];
            }
            return(i);
        }
    public SalesInvoice OnRun(SalesHeader SalesHeader)
    {
        SalesInvoice SalesInvoice = new SalesInvoice();

        SalesInvoice.No_ = SalesHeader.No_;
        SalesInvoice.SelltoCustomerNo_  = SalesHeader.SelltoCustomerNo_;
        SalesInvoice.YourReference      = SalesHeader.YourReference;
        SalesInvoice.OrderDate          = SalesHeader.OrderDate;
        SalesInvoice.PostingDate        = SalesHeader.PostingDate;
        SalesInvoice.SelltoCustomerName = SalesHeader.SelltoCustomerName;
        SalesInvoice.SelltoAddress      = SalesHeader.SelltoAddress;
        return(SalesInvoice);
    }
Example #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Create the Customer Record..............");

            Customer Cust = new Customer();

            Cust.Name    = "Mark Brummel";
            Cust.Address = "Somewhere";

            Console.WriteLine(Cust.No_);

            Console.WriteLine("Return the Customer Address..............");

            foreach (string Addr in Cust.formatAddress())
            {
                Console.WriteLine(Addr);
            }

            Console.WriteLine("Create the Sales Header..............");

            SalesHeader SalesHdr = new SalesHeader();

            SalesHdr.SelltoCustomerNo_ = Cust.No_;
            SalesHdr.OnValidateSelltoCustomerNo_(Cust);
            SalesHdr.PostingDate = new DateTime(2014, 11, 27);

            Console.WriteLine("Show Customer Name..............");

            Console.WriteLine(SalesHdr.SelltoCustomerName);
            Console.WriteLine(SalesHdr.OrderDate.ToString());

            Console.WriteLine("Post Sales Header..............");

            SalesInvoice SalesInv = SalesHdr.Post();

            Console.WriteLine(SalesInv.SelltoCustomerName);

            Console.WriteLine("Print Address Sales Invoice..............");

            foreach (string Addr in SalesInv.formatAddress())
            {
                Console.WriteLine(Addr);
            }

            Console.ReadKey();
        }
Example #7
0
        public String getPrice(String itemNo, String amount)
        {
            SalesHeader head = new SalesHeader();
            Lines       line = new Lines();

            line.No       = itemNo;
            line.Quantity = Convert.ToDecimal(amount);
            List <Lines> lines   = new List <Lines>();
            object       lineObj = line;

            lines.Add(line);
            head.Lines = lines.ToArray();
            RootSalesHeader root = new RootSalesHeader();

            root.SalesHeader = head;
            double price = Convert.ToDouble(_Service.CreateFakeSalesOrder(ref root));

            return(price.ToString());
        }
Example #8
0
        public void DeleteSalesHeader()
        {
            FFREntities ffrDb = new FFREntities();

            SalesHeader salesHeader = new SalesHeader();

            salesHeader.SalesId           = 1;
            salesHeader.SalesStatus       = "Delete";
            salesHeader.OrderSalesBalance = 50;
            salesHeader.OrderTaxAmount    = 5;
            salesHeader.OrderTotal        = salesHeader.OrderSalesBalance + salesHeader.OrderTaxAmount;

            ffrDb.SalesHeaders.Add(salesHeader);
            ffrDb.SaveChanges();

            SalesHeader deleteSalesHeader = (from d in ffrDb.SalesHeaders where d.SalesId == 1 select d).Single();

            ffrDb.SalesHeaders.Remove(deleteSalesHeader);
            ffrDb.SaveChanges();
        }
Example #9
0
        public String WriteOrder(JavaList <ItemSingle> items, CustomerSingle customer)
        {
            SalesHeader header = new SalesHeader();

            header.Sell_To_Customer_No = customer.no;
            RootSalesHeader root  = new RootSalesHeader();
            List <Lines>    lines = new List <Lines>();

            foreach (var item in items)
            {
                Lines line = new Lines();
                line.No                = item.no;
                line.Quantity          = Convert.ToDecimal(item.quantity);
                line.Line_Discount_Pct = Convert.ToDecimal(item.discount);
                lines.Add(line);
            }
            header.Lines = lines.ToArray();
            root.SalesHeader.Lines.SetValue(header, 0);
            return(_Service.CreateSalesOrder(ref root));
        }
Example #10
0
        public void UpdateSalesHeader()
        {
            FFREntities ffrDb = new FFREntities();

            SalesHeader salesHeader = new SalesHeader();

            salesHeader.SalesId           = 2;
            salesHeader.CustomerId        = 1;
            salesHeader.SalesStatus       = "Update";
            salesHeader.OrderSalesBalance = 50;
            salesHeader.OrderTaxAmount    = 5;
            salesHeader.OrderTotal        = salesHeader.OrderSalesBalance + salesHeader.OrderTaxAmount;

            ffrDb.SalesHeaders.Add(salesHeader);
            ffrDb.SaveChanges();

            SalesHeader updateSalesHeader = (from d in ffrDb.SalesHeaders where d.SalesId == 2 select d).Single();

            updateSalesHeader.SalesStatus = "Record has been updated!";
            ffrDb.SaveChanges();
        }
Example #11
0
        public SalesHeader CreateNewSalesHeader()
        {
            if (SelectedCustomer == null)
            {
                return(null);
            }
            var header = new SalesHeader
            {
                No_                 = DaoController.Current.GenerateNewKey(App.Current.PosSetting.Settings_SalesHeaderNumberCount),
                DocumentType        = 1,
                PostingDate         = DateTime.Now,
                Sell_toCustomerNo   = SelectedCustomer.No_,
                Sell_toCustomerName = SelectedCustomer.Name,
                CustomerPriceGroup  = SelectedCustomer.CustomerPriceGroup,
                SalespersonCode     = App.Current.PosSetting.Settings_SalesPersonCode,
                SalesLines          = new List <SalesLine>(),
                JournalLines        = new List <GenJournalLine>(),
                PaymentSchedules    = new List <PaymentSchedule>(),
                CurrentCustomer     = SelectedCustomer
            };

            return(header);
        }
Example #12
0
        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());
        }
Example #13
0
        public List <string> CreateOrder()
        {
            var res = new List <string>();

            if (Order.OrderBaseType == OrderBaseTypes.Current)
            {
                if (App.Current.User.UserType == PosUserTypes.Shop &&
                    AmountSummaryPayment + AmountSummaryPaymentSchedule != Order.AmountIncludingVat &&
                    App.Current.PosSetting.Settings_GenCustomerCode == Order.Sell_toCustomerNo
                    )
                {
                    var gn = (GenJournalLines as List <GenJournalLine>).FirstOrDefault(i => i.PaymentMethodCode == "CASH");
                    if (gn != null)
                    {
                        gn.Amount += Order.AmountIncludingVat - AmountSummaryPayment - AmountSummaryPaymentSchedule;
                    }
                    else
                    {
                        gn = new GenJournalLine()
                        {
                            TemplateName = App.Current.PosSetting.Settings_JnlTemplateName,
                            BatchName    = App.Current.PosSetting.Settings_JnlBatchName,
                            DocumentNo   = Order.No_,
                            DocumentType = Order.DocumentType,
                            PostingDate  = DateTime.Now,
                            AccountType  =
                                (App.Current.User.UserType == PosUserTypes.Distributor ||
                                 App.Current.User.UserType == PosUserTypes.PreSaler)
                                    ? 2
                                    : 3,
                            AccountNo_            = DaoController.Current.GetBankAccounts(1, 0).First().No_,
                            Bal_AccountType       = 1,
                            Bal_AccountNo_        = Order.Sell_toCustomerNo,
                            Salespers__Purch_Code = App.Current.PosSetting.Settings_SalesPersonCode,
                            ResponsibilityCenter  = App.Current.PosSetting.Settings_ResponsibilityCenter,
                            PaymentMethodCode     = "CASH",
                            Amount = Order.AmountIncludingVat - AmountSummaryPayment - AmountSummaryPaymentSchedule
                        };
                        (GenJournalLines as List <GenJournalLine>).Add(gn);
                    }
                }
                var sLines = (List <SalesLine>)SalesLines;
                if (sLines.Any(s => s.PostingDate.HasValue && s.PostingDate.Value.Date > Order.PostingDate.Value.Date))
                {
                    var dates = sLines.Where(s => s.PostingDate.HasValue && s.PostingDate.Value.Date > Order.PostingDate.Value.Date).Select(s => s.PostingDate.Value.Date).Distinct();
                    foreach (var dt in dates)
                    {
                        var newHeader = new SalesHeader
                        {
                            No_                 = DaoController.Current.GenerateNewKey(App.Current.PosSetting.Settings_SalesHeaderNumberCount),
                            DocumentType        = 1,
                            PostingDate         = dt,
                            Sell_toCustomerNo   = Order.Sell_toCustomerNo,
                            Sell_toCustomerName = Order.Sell_toCustomerName,
                            CustomerPriceGroup  = Order.CustomerPriceGroup,
                            SalespersonCode     = App.Current.PosSetting.Settings_SalesPersonCode,
                            SalesLines          = new List <SalesLine>(),
                            JournalLines        = new List <GenJournalLine>(),
                            PaymentSchedules    = new List <PaymentSchedule>(),
                            CurrentCustomer     = Order.CurrentCustomer,
                        };
                        var newSalesLines = sLines.Where(s => s.PostingDate.HasValue && s.PostingDate.Value.Date == dt).ToList();
                        newSalesLines.ForEach(n => { n.DocumentNo_ = newHeader.No_; n.OrderType = 2; });
                        newHeader.AmountIncludingVat = newSalesLines.Sum(i => i.AmountIncludingVAT);
                        DaoController.Current.CreateOrder(newHeader, newSalesLines,
                                                          new List <PaymentSchedule>(), new List <GenJournalLine>(), _currentDate);
                        res.Add(newHeader.No_);
                    }
                }
                sLines = sLines.Where(s => !s.PostingDate.HasValue || s.PostingDate.Value.Date == Order.PostingDate.Value.Date).ToList();
                Order.AmountIncludingVat = sLines.Sum(i => i.AmountIncludingVAT);
                DaoController.Current.CreateOrder((SalesHeader)Order, sLines,
                                                  (List <PaymentSchedule>)PaymentSchedules, (List <GenJournalLine>)GenJournalLines, _currentDate);
                res.Add(Order.No_);
            }
            else
            {
                var rOrder = (ReleasedSalesHeader)Order;
                if (OrdersManager.Current.IsOrderWaybillUploaded(rOrder.DocumentType, rOrder.No_))
                {
                    rOrder.SalesLines       = ((List <ReleasedSalesLine>)SalesLines).Where(i => !i.IsNew).ToList();
                    rOrder.PaymentSchedules = (List <ReleasedPaymentSchedule>)PaymentSchedules;
                    Order.JournalLines      = (List <ReleasedGenJournalLine>)GenJournalLines;
                    OrdersManager.Current.SaveNavOrder(rOrder);
                    DaoController.Current.CreateReleaseOrder((ReleasedSalesHeader)Order,
                                                             rOrder.SalesLines, (List <ReleasedPaymentSchedule>)PaymentSchedules,
                                                             (List <ReleasedGenJournalLine>)GenJournalLines);

                    var oNo =
                        DaoController.Current.GenerateNewKey(App.Current.PosSetting.Settings_SalesHeaderNumberCount);
                    int mt = 0;
                    DaoController.Current.CreateOrder(
                        new SalesHeader
                    {
                        No_                 = oNo,
                        DocumentType        = 1,
                        PostingDate         = DateTime.Now,
                        Sell_toCustomerNo   = rOrder.Sell_toCustomerNo,
                        Sell_toCustomerName = rOrder.Sell_toCustomerName,
                        CustomerPriceGroup  = rOrder.CustomerPriceGroup,
                        SalespersonCode     = App.Current.PosSetting.Settings_SalesPersonCode,
                        SalesLines          = new List <SalesLine>(),
                        JournalLines        = new List <GenJournalLine>(),
                        PaymentSchedules    = new List <PaymentSchedule>(),
                        CurrentCustomer     = Order.CurrentCustomer
                    }, ((List <ReleasedSalesLine>)SalesLines).Where(i => i.IsNew).Select(i => new SalesLine
                    {
                        DocumentNo_           = oNo,
                        DocumentType          = 1,
                        LineNo_               = ++mt,
                        Type                  = 2,
                        No_                   = i.No_,
                        Description           = i.Description,
                        Quantity              = i.Quantity,
                        UnitPrice             = i.UnitPrice,
                        Sell_toCustomerNo     = i.Sell_toCustomerNo,
                        LocationCode          = App.Current.PosSetting.Settings_Location,
                        AmountIncludingVAT    = i.AmountIncludingVAT,
                        UnitOfMeasureCode     = i.UnitOfMeasureCode,
                        OrderType             = i.OrderType,
                        LineDiscountAmount    = 0,
                        LineDiscountPercent   = 0,
                        LargeDescription      = i.LargeDescription,
                        Service_Provider      = i.Service_Provider,
                        Service_Provider_Name = i.Service_Provider_Name,
                        Customer_Vehicle      = i.Customer_Vehicle
                    }).ToList(),
                        new List <PaymentSchedule>(), new List <GenJournalLine>(), _currentDate);
                    res.Add(oNo);
                }
                else
                {
                    rOrder.SalesLines       = (List <ReleasedSalesLine>)SalesLines;
                    rOrder.PaymentSchedules = (List <ReleasedPaymentSchedule>)PaymentSchedules;
                    Order.JournalLines      = (List <ReleasedGenJournalLine>)GenJournalLines;
                    OrdersManager.Current.SaveNavOrder(rOrder);
                    DaoController.Current.CreateReleaseOrder((ReleasedSalesHeader)Order,
                                                             (List <ReleasedSalesLine>)SalesLines, (List <ReleasedPaymentSchedule>)PaymentSchedules,
                                                             (List <ReleasedGenJournalLine>)GenJournalLines);
                    res.Add(Order.No_);
                }
            }
            return(res);
        }
Example #14
0
 public Invoice(SalesHeader header, Party party, List <SalesLineItem> lineItems)
 {
     Header    = header;
     Party     = party;
     LineItems = lineItems;
 }
 private void detach_SalesHeaders(SalesHeader entity)
 {
     this.SendPropertyChanging("SalesHeaders");
     entity.Dealer = null;
 }
 private void attach_SalesHeaders(SalesHeader entity)
 {
     this.SendPropertyChanging("SalesHeaders");
     entity.Warehouse = this;
 }
 private void attach_SalesHeaders(SalesHeader entity)
 {
     this.SendPropertyChanging("SalesHeaders");
     entity.Customer = this;
 }
Example #18
0
        public Boolean GenSaleDailyKingPower(string aYYYYMMDDHHMMSS)
        {
            Boolean lbReturn = false;
            string  lsError = "", lsSQL = "";

            try
            {
                Initial lsIniT = new Initial();
                if (lsGdb.Gdb.State == System.Data.ConnectionState.Closed)
                {
                    lsGdb.ConnectDatabase();
                }
                lsIniT.CreateTblInitial(lsGdb.Gdb);
                SalesHeader  lsSH  = new SalesHeader();
                SalesDetail  lsSD  = new SalesDetail();
                SaleSPayment lsSPa = new SaleSPayment();
                SumPayment   lsSPy = new SumPayment();
                SumSales     lsSSa = new SumSales();
                //KingPower lsGen = new KingPower();
                double   ldoMulti = 0;
                DateTime ldSaleDate, ldVoidDate, ldReturnDate;
                Int32    i = 0, j = 0;
                string   lsDataSH1_10 = "", lsDataSH11_20 = "", lsDataSH21_34 = "", lsPlNameE = "";
                string   lsDataSD1_10 = "", lsDataSD11_23 = "";
                string   lsDataSPa1_11 = "", lsTime = "";
                string   lsDataSPy1_8 = "";
                string   lsDataSSa1_8 = "";
                string[] lsDataSH     = new string[200];
                string[] lsDataSD     = new string[200];
                string[] lsDataSPa    = new string[200];
                string[] lsDataSPy    = new string[200];
                string[] lsDataSSa    = new string[200];
                string[] lsMaster     = new string[2000];
                string[] lsData       = new string[2000];
                //ArrayList lsList = new ArrayList();
                string  lsFileName = "", lsVouDate = "", lsPath = "D://thahr30//", lsMemID = "", lsVatRate = "";
                IniFile lsIni = new IniFile("thahr30.ini");
                lsSH.ShopCode = lsIni.GetString("kingpower", "shopcode", "0");

                lsSD.ShopCode       = lsSH.ShopCode;
                lsSPa.ShopCode      = lsSH.ShopCode;
                lsSPy.ShopCode      = lsSH.ShopCode;
                lsSSa.ShopCode      = lsSH.ShopCode;
                lsSH.Branch_Code    = lsIni.GetString("kingpower", "branch_code", "0");
                lsSD.Branch_Code    = lsSH.Branch_Code;
                lsSPa.Branch_Code   = lsSH.Branch_Code;
                lsSPy.Branch_Code   = lsSH.Branch_Code;
                lsSSa.Branch_Code   = lsSH.Branch_Code;
                lsSD.Std_Cate_Code  = lsIni.GetString("kingpower", "std_cate_code", "0");
                lsSD.Vat_Rate       = lsIni.GetString("thahr30", "vatrate", "0");
                lsSD.Unit_Code      = lsIni.GetString("kingpower", "unit_code", "0");
                lsSPa.Currency_Code = lsIni.GetString("kingpower", "currency_code", "THB");
                lsSH.Vat_Type       = lsIni.GetString("kingpower", "vat_type", "1");
                lsSD.Vat_Type       = lsSH.Vat_Type;
                ldoMulti            = Convert.ToDouble(lsIni.GetString("kingpower", "ratekingpower", "15.00"));
                lsSPy.Currency_Code = lsSPa.Currency_Code;
                lsSPa.Rate          = lsIni.GetString("thahr30", "USTOBAHT", "0");
                lsSPy.Rate          = lsSPa.Rate;
                string lsServer   = lsIni.GetString("thahr30", "serverdatabasename", "localhost");
                string lsDatabase = lsIni.GetString("thahr30", "databasename", "thahr3");
                string lsUserName = lsIni.GetString("thahr30", "username", "janepop");
                string lsPassword = lsIni.GetString("thahr30", "password", "Ekartc2c5");
                lsVatRate  = lsIni.GetString("thahr30", "vatrate", "7.00");
                lsPath     = lsIni.GetString("kingpower", "pathtextfilekingpower", "D://thahr30//text//");
                lsFileName = lsSH.ShopCode + "_SALES_" + aYYYYMMDDHHMMSS.Substring(0, 4) + aYYYYMMDDHHMMSS.Substring(5, 2) + aYYYYMMDDHHMMSS.Substring(8, 8);
                MySqlConnection conn = new MySqlConnection("Data Source=" + lsServer + ";Database=" + lsDatabase + ";User ID=" + lsUserName + ";Password="******"");
                conn.Open();
                //conn = lsGdb.Gdb;
                MySqlConnection conn1 = new MySqlConnection("Data Source=" + lsServer + ";Database=" + lsDatabase + ";User ID=" + lsUserName + ";Password="******"");
                conn1.Open();
                //conn1 = lsGdb.Gdb;
                string lsDate = aYYYYMMDDHHMMSS.Substring(0, 4) + "-" + aYYYYMMDDHHMMSS.Substring(5, 2) + "-" + aYYYYMMDDHHMMSS.Substring(8, 2);
                lsSQL = "Select v.vouno, v.staffcode, v.voudate, v.counter1, v.couno, v.shiftcode, v.restime, v.provcode, "                                                          //0-7
                        + "v.hotelcode, v.guestfirstname, v.nationcode, v.roomcode, v.visitt, v.pax, v.roomrate, "                                                                   //8-14
                        + "v.statuscode, v.depositamt, v.checkindate, v.checkoutdate, v.confirmperson, v.remark, "                                                                   // 15-20
                        + "v.flag, v.resrooms, v.flagsend, v.guestlastname, v.roomno, v.mac, v.flagconfirm, "                                                                        // 21-27
                        + "v.confirmremark, v.personintrip, v.prefix, v.roomrate1, v.pay_type, v.currency_code, m.memnamee1, v.memplcode, v.voiddate, v.returndate, v.remarkreturn " // 28-34
                        + "From voucher v, member m Where v.flag <> '4' and v.voudate = '" + lsDate + "' and m.memid = v.hotelcode and v.memplcode not in ('-','') ";
                lsSQL = lsSQL + "Union ";
                lsSQL = lsSQL + "Select v.vouno, v.staffcode, v.voudate, v.counter1, v.couno, v.shiftcode, v.restime, v.provcode, "                                                  //0-7
                        + "v.hotelcode, v.guestfirstname, v.nationcode, v.roomcode, v.visitt, v.pax, v.roomrate, "                                                                   //8-14
                        + "v.statuscode, v.depositamt, v.checkindate, v.checkoutdate, v.confirmperson, v.remark, "                                                                   // 15-20
                        + "v.flag, v.resrooms, v.flagsend, v.guestlastname, v.roomno, v.mac, v.flagconfirm, "                                                                        // 21-27
                        + "v.confirmremark, v.personintrip, v.prefix, v.roomrate1, v.pay_type, v.currency_code, m.memnamee1, v.memplcode, v.voiddate, v.returndate, v.remarkreturn " // 28-34
                        + "From voucher v, member m Where v.flag = '5' and v.returndate = '" + lsDate + "' and m.memid = v.hotelcode and v.memplcode not in ('-','') ";
                MySqlCommand    lsComm = new MySqlCommand(lsSQL, conn);
                MySqlDataReader lsRead;
                lsRead = lsComm.ExecuteReader();
                StreamWriter lsSW = new StreamWriter(lsPath + lsFileName + ".Txt");
                lsTextSaleFileName = lsPath + lsFileName + ".Txt";
                lsDataSH[0]        = "[SALESHEADER]";
                lsDataSD[0]        = "[SALESDETAIL]";
                lsDataSPa[0]       = "[SALESPAYMENT]";
                lsDataSPy[0]       = "[SUMPAYMENT]";
                lsDataSSa[0]       = "[SUMSALES]";
                lsSPy.Sale_Date    = lsVouDate;
                lsSSa.Sale_Date    = lsSPy.Sale_Date;
                if (lsRead.HasRows)
                {
                    //lsVat_Rate = lsMaster.lsVatRate;
                    double ldoAmt_Inv_Vat = 0, ldoAmt_EXC_Vat = 0, ldoVat_Amt = 0, ldoAmt = 0;
                    while (lsRead.Read())
                    {
                        i++;
                        lsSH.Branch_Code  = lsRead["counter1"].ToString();
                        lsSD.Branch_Code  = lsSH.Branch_Code;
                        lsSPa.Branch_Code = lsSH.Branch_Code;
                        lsSPy.Branch_Code = lsSH.Branch_Code;
                        lsSSa.Branch_Code = lsSH.Branch_Code;
                        lsSH.Sale_NO      = lsRead["vouno"].ToString();
                        lsSD.Sale_NO      = lsSH.Sale_NO;
                        lsSPa.Sale_NO     = lsSH.Sale_NO;
                        lsSH.POS_NO       = lsRead["mac"].ToString();
                        lsSD.POS_NO       = lsSH.POS_NO;
                        lsSPa.POS_NO      = lsSH.POS_NO;
                        lsSH.Sale_TYPE    = "1";
                        lsSD.Sale_TYPE    = lsSH.Sale_TYPE;
                        lsSPa.Sale_TYPE   = lsSH.Sale_TYPE;
                        ldSaleDate        = Convert.ToDateTime(lsRead["voudate"]);
                        if (lsRead["flag"].ToString() == "3")
                        {
                            //MySqlDbType.Datetime aaa;
                            //aaa = lsRead.GetMySqlDateTime(36);
                            //ldVoidDate = Convert.ToDateTime(lsRead.GetMySqlDateTime(36));
                            Boolean lbVoid = lsRead.GetMySqlDateTime(36).IsValidDateTime;
                            lsSQL = lsRead.GetMySqlDateTime(36).ToString();
                            if (lbVoid)
                            {
                                ldVoidDate     = Convert.ToDateTime(lsSQL);
                                lsSH.Void_Date = ldVoidDate.Year.ToString("0000") + "-" + ldVoidDate.Month.ToString("00") + "-" + ldVoidDate.Day.ToString("00") + " " + ldVoidDate.Hour.ToString("00") + ":" + ldVoidDate.Minute.ToString("00") + ":" + ldVoidDate.Second.ToString("00");
                            }
                            else
                            {
                                lsSH.Void_Date = "";
                            }
                        }
                        else
                        {
                            lsSH.Void_Date = "";
                        }
                        lsSH.Void_Reason = "";
                        lsSH.Sale_Date   = ldSaleDate.Year.ToString("0000") + "-" + ldSaleDate.Month.ToString("00") + "-" + ldSaleDate.Day.ToString("00");
                        if (lsRead["flag"].ToString() == "5")
                        {
                            Boolean lbReturnVoucher = lsRead.GetMySqlDateTime(37).IsValidDateTime;
                            if (lbReturnVoucher)
                            {
                                ldReturnDate       = Convert.ToDateTime(lsRead["returndate"]);
                                lsSH.Return_Reason = lsRead["remarkreturn"].ToString();
                                lsSH.Sale_Date     = ldReturnDate.Year.ToString("0000") + "-" + ldReturnDate.Month.ToString("00") + "-" + ldReturnDate.Day.ToString("00");
                            }
                            else
                            {
                                lsSH.Return_Reason = "";
                            }
                        }
                        else
                        {
                        }
                        lsSD.Sale_Date  = lsSH.Sale_Date;
                        lsSPa.Sale_Date = lsSH.Sale_Date;
                        lsSD.SEQ        = "1";
                        lsSH.Shift_NO   = lsRead["shiftcode"].ToString();
                        lsMemID         = lsRead["hotelcode"].ToString();
                        if (lsMemID == lsMem)
                        {
                            j++;
                        }
                        else
                        {
                            lsMem = lsMemID;
                            j     = 1;
                        }
                        lsPlNameE           = lsRead["memplcode"].ToString();
                        lsPlNameE           = lsIniT.SelectInitial(lsIniT.TblTypeRoom, lsPlNameE.Substring(5, 2), Initial.WhereSelect.aCodetoName);
                        lsSD.Prod_Serv_Name = lsRead.GetValue(34).ToString() + " [" + lsPlNameE + "]";
                        lsSD.Prod_Serv_code = lsRead["memplcode"].ToString();
                        lsSD.Prod_Serv_QTY  = lsRead.GetValue(13).ToString();
                        lsSD.Prod_Serv_QTY  = "1";
                        lsTime = "";
                        lsTime = lsRead["restime"].ToString();
                        if (lsTime.Length < 5)
                        {
                            lsTime = "00:00";
                        }
                        lsSH.Doc_Date    = lsSH.Sale_Date + " " + lsTime + ":00";
                        lsSH.Create_Date = lsSH.Doc_Date;
                        lsSH.Trans_Date  = lsSH.Doc_Date;
                        lsSH.Member_ID   = "";
                        lsSH.SVC_ID      = "";
                        lsSH.Name        = lsRead["guestfirstname"].ToString() + " " + lsRead["guestlastname"].ToString();
                        lsSH.Flight_NO   = "";
                        lsSH.Flight_Date = "";
                        lsSH.Nation_Code = lsRead["nationcode"].ToString();
                        lsSH.Nation_Code = "";
                        lsSH.PassPort_NO = "";
                        lsSH.Birth_Date  = "";
                        lsSH.Sex         = "";
                        //lsSH.Vat_Type = "1";
                        lsSD.Vat_Type = lsSH.Vat_Type;
                        ldoAmt        = Convert.ToDouble(lsRead[lsCalAmt]);
                        ldoAmt        = (ldoAmt * ldoMulti) / 100;
                        if (lsFlagVAT == "exclude")
                        {
                            ldoAmt_EXC_Vat = ldoAmt;
                            ldoAmt_Inv_Vat = ldoAmt + (ldoAmt * (Convert.ToDouble(lsVatRate) / 100));
                        }
                        else
                        {
                            ldoAmt_Inv_Vat = ldoAmt;
                            ldoAmt_EXC_Vat = ldoAmt_Inv_Vat / 1.07;
                        }
                        lsError          = lsSH.Name;
                        lsSH.AMT_EXC_VAT = ldoAmt_EXC_Vat.ToString("0.00");
                        lsSD.AMT_EXC_VAT = lsSH.AMT_EXC_VAT;
                        lsSH.AMT_INC_VAT = ldoAmt_Inv_Vat.ToString("0.00");
                        lsSD.AMT_INC_VAT = lsSH.AMT_INC_VAT;
                        if (lsFlagVAT == "exclude")
                        {
                            lsSPa.Amount   = lsSH.AMT_EXC_VAT;
                            lsSPa.Baht_AMT = lsSH.AMT_EXC_VAT;
                        }
                        else
                        {
                            lsSPa.Amount   = lsSH.AMT_INC_VAT;
                            lsSPa.Baht_AMT = lsSH.AMT_INC_VAT;
                        }
                        lsSD.AOT_Price_Inc_VAT  = lsSD.AMT_INC_VAT;
                        lsSD.AOT_Price_Exc_VAT  = lsSD.AMT_EXC_VAT;
                        ldoVat_Amt              = ldoAmt_Inv_Vat - ldoAmt_EXC_Vat;
                        lsSH.VAT_AMT            = ldoVat_Amt.ToString("0.00");
                        lsSD.VAT_AMT            = lsSH.VAT_AMT;
                        lsSH.Pro_Code           = "";
                        lsSD.Pro_Code           = "";
                        lsSH.Disc_Vat_AMT       = "";
                        lsSH.Disc_AMT_Exc_Vat   = "";
                        lsSD.Disc_Price_Exc_VAT = lsSH.Disc_AMT_Exc_Vat;
                        lsSH.Disc_AMT_INC_VAT   = "";
                        lsSD.Disc_Price_INC_VAT = lsSH.Disc_AMT_INC_VAT;
                        lsSH.Service_Charge     = "";
                        lsSD.Service_Charge     = lsSH.Service_Charge;
                        lsSH.Ref_Sale_NO        = "";
                        lsSH.Ref_POS_NO         = "";
                        lsSH.Ref_Sale_Date      = "";
                        lsSH.Return_Reason      = "";
                        switch (lsRead["hotelcode"].ToString())
                        {
                        case "01":
                            lsSPa.Pay_TYPE = "1";
                            break;

                        case "02":
                            lsSPa.Pay_TYPE = "2";
                            break;

                        case "03":
                            lsSPa.Pay_TYPE = "3";
                            break;

                        default:
                            lsSPa.Pay_TYPE = "1";
                            break;
                        }
                        if (lsSD.Sale_NO == "49001000094")
                        {
                            lsSQL = "";
                        }
                        lsDataSH1_10  = lsSH.ShopCode + "|" + lsSH.Branch_Code + "|" + lsSH.Sale_NO + "|" + lsSH.POS_NO + "|" + lsSH.Sale_TYPE + "|" + lsSH.Sale_Date + "|" + lsSH.Shift_NO + "|" + lsSH.Doc_Date + "|" + lsSH.Create_Date + "|" + lsSH.Trans_Date;
                        lsDataSH11_20 = lsSH.Member_ID + "|" + lsSH.SVC_ID + "|" + lsSH.Name + "|" + lsSH.Flight_NO + "|" + lsSH.Flight_Date + "|" + lsSH.Nation_Code + "|" + lsSH.PassPort_NO + "|" + lsSH.Birth_Date + "|" + lsSH.Sex + "|" + lsSH.Vat_Type;
                        lsDataSH21_34 = lsSH.AMT_EXC_VAT + "|" + lsSH.VAT_AMT + "|" + lsSH.AMT_INC_VAT + "|" + lsSH.Pro_Code + "|" + lsSH.Disc_Vat_AMT + "|" + lsSH.Disc_AMT_Exc_Vat + "|" + lsSH.Disc_AMT_INC_VAT + "|" + lsSH.Service_Charge + "|" + lsSH.Void_Date + "|" + lsSH.Void_Reason + "|" + lsSH.Ref_Sale_NO + "|" + lsSH.Ref_POS_NO + "|" + lsSH.Ref_Sale_Date + "|" + lsSH.Return_Reason;
                        lsDataSH[i]   = lsDataSH1_10 + "|" + lsDataSH11_20 + "|" + lsDataSH21_34;
                        lsDataSD1_10  = lsSD.ShopCode + "|" + lsSD.Branch_Code + "|" + lsSD.Sale_NO + "|" + lsSD.POS_NO + "|" + lsSD.Sale_TYPE + "|" + lsSD.Sale_Date + "|" + lsSD.SEQ + "|" + lsSD.Std_Cate_Code + "|" + lsSD.Prod_Serv_code + "|" + lsSD.Prod_Serv_Name;
                        lsDataSD11_23 = lsSD.Vat_Type + "|" + lsSD.Vat_Rate + "|" + lsSD.Prod_Serv_QTY + "|" + lsSD.Unit_Code + "|" + lsSD.AOT_Price_Exc_VAT + "|" + lsSD.AOT_Price_Inc_VAT + "|" + lsSD.AMT_EXC_VAT + "|" + lsSD.VAT_AMT + "|" + lsSD.AMT_INC_VAT + "|" + lsSD.Pro_Code + "|" + lsSD.Disc_Price_Exc_VAT + "|" + lsSD.Disc_Price_INC_VAT + "|" + lsSD.Service_Charge;
                        lsDataSD[i]   = lsDataSD1_10 + "|" + lsDataSD11_23;
                        lsDataSPa1_11 = lsSPa.ShopCode + "|" + lsSPa.Branch_Code + "|" + lsSPa.Sale_NO + "|" + lsSPa.POS_NO + "|" + lsSPa.Sale_TYPE + "|" + lsSPa.Sale_Date + "|" + lsSPa.Pay_TYPE + "|" + lsSPa.Currency_Code + "|" + lsSPa.Rate + "|" + lsSPa.Amount + "|" + lsSPa.Baht_AMT;
                        lsDataSPa[i]  = lsDataSPa1_11;
                        lsSQL         = "Select * From member Where memid = '" + lsSD.Prod_Serv_code + "' and pricestart <> " + ldoAmt_Inv_Vat;
                        MySqlCommand    lsCommPrice = new MySqlCommand(lsSQL, conn1);
                        MySqlDataReader lsReadPrice;
                        lsReadPrice = lsCommPrice.ExecuteReader();
                        lsError     = lsRead["vouno"].ToString();
                        if (lsReadPrice.HasRows)
                        {
                            j++;
                            //lsData = lsGen.GenMasterFileKingPower(lsReadPrice, ldoAmt_Inv_Vat);
                            lsData = GenMasterFileKingPower(lsReadPrice, ldoAmt_Inv_Vat);
                            foreach (string lsD in lsData)
                            {
                                if (lsD != null)
                                {
                                    lsMaster[j] = lsD;
                                }
                            }
                        }
                        lsReadPrice.Close();
                    }
                }
                lsRead.Close();
                double ldoAmount = 0;
                lsSQL = "Select pay_type, counter1, currency_code, sum(roomrate) as roomrate, voudate, sum(roomrate1) as roomrate1 From voucher, member "
                        + "Where voudate = '" + lsDate + "' and voucher.flag <> '4' and memplcode not in ('-','') and hotelcode = memid Group By pay_type, currency_code, counter1, voudate ";
                MySqlCommand    lsCommSpy = new MySqlCommand(lsSQL, conn);
                MySqlDataReader lsReadSpy;
                lsReadSpy = lsCommSpy.ExecuteReader();
                if (lsReadSpy.HasRows)
                {
                    i = 0;
                    while (lsReadSpy.Read())
                    {
                        i++;
                        lsSPy.Pay_TYPE      = lsReadSpy["pay_type"].ToString();
                        lsSPy.Currency_Code = lsReadSpy["currency_code"].ToString();
                        ldSaleDate          = Convert.ToDateTime(lsReadSpy["voudate"]);
                        lsSPy.Sale_Date     = ldSaleDate.Year.ToString("0000") + "-" + ldSaleDate.Month.ToString("00") + "-" + ldSaleDate.Day.ToString("00");
                        lsSPy.Branch_Code   = lsReadSpy["counter1"].ToString();
                        //ldoAmount = Convert.ToDouble(lsReadSpy["roomrate"]);
                        //ldoAmount = (ldoAmount * ldoMulti) / 100;
                        ldoAmount = Convert.ToDouble(lsReadSpy[lsCalAmt]);
                        ldoAmount = (ldoAmount * ldoMulti) / 100;
                        if (lsFlagVAT == "exclude")
                        {
                            ldoAmount = ldoAmount;
                        }
                        else
                        {
                            //ldoAmount = ldoAmount / 1.07;
                            ldoAmount = ldoAmount + (ldoAmount * (Convert.ToDouble(lsVatRate) / 100));
                        }
                        lsSPy.Amount   = ldoAmount.ToString("0.00");
                        lsSPy.Baht_AMT = lsSPy.Amount;
                        lsDataSPy1_8   = lsSPy.ShopCode + "|" + lsSPy.Branch_Code + "|" + lsSPy.Sale_Date + "|" + lsSPy.Pay_TYPE + "|" + lsSPy.Currency_Code.ToUpper() + "|" + lsSPy.Rate + "|" + lsSPy.Amount + "|" + lsSPy.Amount;
                        lsDataSPy[i]   = lsDataSPy1_8;
                    }
                }
                lsReadSpy.Close();
                lsSQL = "Select counter1, sum(roomrate) as roomrate, sum(roomrate1) as roomrate1, voudate From voucher, member "
                        + "Where voucher.flag <> '4' and voudate = '" + lsDate + "' and memplcode not in ('-','') and hotelcode = memid Group By counter1, voudate ";
                MySqlCommand    lsCommSSa = new MySqlCommand(lsSQL, conn);
                MySqlDataReader lsReadSSa;
                lsReadSSa = lsCommSSa.ExecuteReader();
                if (lsReadSSa.HasRows)
                {
                    i = 0;
                    while (lsReadSSa.Read())
                    {
                        i++;
                        lsSSa.Branch_Code = lsReadSSa["counter1"].ToString();
                        ldSaleDate        = Convert.ToDateTime(lsReadSSa["voudate"]);
                        lsSSa.Sale_Date   = ldSaleDate.Year.ToString("0000") + "-" + ldSaleDate.Month.ToString("00") + "-" + ldSaleDate.Day.ToString("00");
                        //ldoAmount = Convert.ToDouble(lsReadSSa["amt"]);
                        //ldoAmount = (ldoAmount * ldoMulti) / 100;

                        ldoAmount = Convert.ToDouble(lsReadSSa[lsCalAmt]);
                        ldoAmount = (ldoAmount * ldoMulti) / 100;
                        if (lsFlagVAT == "exclude")
                        {
                            ldoAmount = ldoAmount;
                        }
                        else
                        {
                            //ldoAmount = ldoAmount / 1.07;
                            ldoAmount = ldoAmount + (ldoAmount * (Convert.ToDouble(lsVatRate) / 100));
                        }
                        lsSSa.Sale_Header_AMT     = ldoAmount.ToString("0.00");
                        lsSSa.Net_Sale_Header_AMT = ldoAmount.ToString("0.00");
                        lsSSa.Sale_DTL_AMT        = ldoAmount.ToString("0.00");
                        lsSSa.Net_Sale_DTL_AMT    = ldoAmount.ToString("0.00");
                        lsSSa.Payment_AMT         = ldoAmount.ToString("0.00");
                        lsDataSSa1_8 = lsSSa.ShopCode + "|" + lsSSa.Branch_Code + "|" + lsSSa.Sale_Date + "|" + lsSSa.Sale_Header_AMT + "|" + lsSSa.Net_Sale_Header_AMT + "|" + lsSSa.Sale_DTL_AMT + "|" + lsSSa.Net_Sale_DTL_AMT + "|" + lsSSa.Payment_AMT;
                        lsDataSSa[i] = lsDataSSa1_8;
                    }
                }
                lsReadSpy.Close();
                //lsSW.WriteLine(lsDataD[0]);
                foreach (string lsD in lsDataSH)
                {
                    if (lsD != null)
                    {
                        lsSW.WriteLine(lsD);
                    }
                }
                foreach (string lsD in lsDataSD)
                {
                    if (lsD != null)
                    {
                        lsSW.WriteLine(lsD);
                    }
                }
                foreach (string lsD in lsDataSPa)
                {
                    if (lsD != null)
                    {
                        lsSW.WriteLine(lsD);
                    }
                }
                foreach (string lsD in lsDataSPy)
                {
                    if (lsD != null)
                    {
                        lsSW.WriteLine(lsD);
                    }
                }
                foreach (string lsD in lsDataSSa)
                {
                    if (lsD != null)
                    {
                        lsSW.WriteLine(lsD);
                    }
                }
                lsSW.Close();
                conn.Close();
                conn1.Close();
                //KingPower lsGen = new KingPower();
                //lsGen.CreateTextFile(lsMaster, aYYYYMMDDHHMMSS);
                CreateTextProductFile(lsMaster, aYYYYMMDDHHMMSS);
                lbReturn = true;
            }
            catch (Exception e)
            {
                string ls = "äÁèÊÒÁÒöàµÃÕÂÁ¢éÍÁÙÅ Print ä´é ";
                lsGdb.WriteLogError(ls, e, lsError, "GenSaleDailyKingPower ");
                //MessageBox.Show(ls + " " + eAcc.Message.ToString(), eAcc.Source.ToString(), MessageBoxButtons.OK);
            }
            return(lbReturn);
        }
Example #19
0
        /// <summary>
        /// for mouser
        /// </summary>
        /// <param name="b"></param>
        /// <returns></returns>
        public override string Parse(EdiBatch b, Edi_Customer c, string parserFile)
        {
            int                  _ItemNumber    = 1;
            string               _CustomerName  = "";
            string               _Log           = "";
            SapSalesOrder        _SapSalesOrder = new SapSalesOrder();
            List <SalesItem>     _ItemList      = new List <SalesItem>();
            List <SalesPartner>  _PartnerList   = new List <SalesPartner>();
            List <SalesSchedule> _ScheduleList  = new List <SalesSchedule>();
            SalesHeader          _Header        = new SalesHeader();

            _Header.DOC_TYPE   = c.DOC_TYPE;   //need to discuss
            _Header.SALES_ORG  = c.SALES_ORG;  //need to discuss
            _Header.DISTR_CHAN = c.DISTR_CHAN; //need to discuss
            _Header.DIVISION   = c.DIVISION;   //need to discuss
            try
            {
                EdiTrans   _PO  = b.Interchanges[0].Groups[0].Transactions[0];
                EdiSegment _BEG = (EdiSegment)_PO.Content.FirstOrDefault(l => l.Definition.Name == "BEG");
                if (_BEG != null)
                {
                    _Header.PURCH_NO_C = _BEG.Content[2].ToString();
                    _Header.PURCH_DATE = _BEG.Content[4].ToString();
                }
                _SapSalesOrder.Header = _Header;

                var listL_N1 = _PO.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_N1)).Select(l => l).ToList();
                foreach (EdiLoop n1 in listL_N1)
                {
                    SalesPartner _Partner = new SalesPartner();
                    // var _N1Loop = (EdiLoop)n1;
                    EdiSegment _N1 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N1");
                    if (_N1 != null)
                    {
                        if ((_N1.Content[0].ToString() == "BT") || (_N1.Content[0].ToString() == "BY"))
                        {
                            _Partner.PARTN_ROLE = "AG";
                        }
                        else if (_N1.Content[0].ToString() == "ST")
                        {
                            _Partner.PARTN_ROLE = "WE";
                        }

                        if (c.EdiType == 1)
                        {
                            _Partner.PARTN_NUMB = c.SapCustomerId;                //how to know what code in altw sap ,loop edi table
                        }
                        else
                        {
                            _Partner.PARTN_NUMB = _N1.Content[3].ToString();
                        }
                        _CustomerName = _N1.Content[1].ToString();
                    }
                    EdiSegment _N3 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N3");
                    if (_N3 != null)
                    {
                        _Partner.STREET = _N3.Content[0].ToString();
                    }
                    EdiSegment _N4 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N4");
                    if (_N4 != null)
                    {
                        _Partner.CITY       = _N4.Content[0].ToString();
                        _Partner.POSTL_CODE = _N4.Content[2].ToString();
                        _Partner.COUNTRY    = _N4.Content[3].ToString();
                        _Partner.REGION     = _N4.Content[1].ToString();
                    }
                    EdiSegment _PER = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "PER");
                    if (_PER != null)
                    {
                        _Partner.NAME      = _PER.Content[1].ToString();
                        _Partner.TELEPHONE = _PER.Content[3].ToString();
                    }
                    _PartnerList.Add(_Partner);
                }
                _SapSalesOrder.PartnerList = _PartnerList;
                var listL_PO1 = _PO.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_PO1)).Select(l => l).ToList();
                foreach (EdiLoop po1 in listL_PO1)
                {
                    int       _SchedLine = 1;
                    SalesItem _Item      = new SalesItem();
                    // var _PO1Loop = (EdiLoop)po1;
                    EdiSegment _PO1 = (EdiSegment)po1.Content.FirstOrDefault(l => l.Definition.Name == "PO1");
                    if (_PO1 != null)
                    {
                        _Item.ITM_NUMBER = (_ItemNumber * 10).ToString().PadLeft(6, '0'); //need use altw rule 000010
                                                                                          //mouser special logic PO111 is part number
                                                                                          // if(c.SapCustomerId== "0010000136") _Item.MATERIAL = _PO1.Content[10].ToString();
                                                                                          //else _Item.MATERIAL = _PO1.Content[8].ToString();
                        _Item.MATERIAL            = _PO1.Content[Convert.ToInt32(c.PartNumberIndex)].ToString();
                        _Item.TARGET_QTY          = _PO1.Content[1].ToString();
                        _Item.CUST_MAT35          = _PO1.Content[6].ToString();
                        _Item.CustomerItemNumber  = _PO1.Content[0].ToString();
                        _Item.CustomerPrice       = _PO1.Content[3].ToString();
                        _Item.CustomerUnit        = _PO1.Content[2].ToString();
                        _Item.CustomerUnitOfPrice = _PO1.Content[4].ToString();
                    }
                    _ItemList.Add(_Item);
                    var listL_SCH = po1.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_SCH)).Select(l => l).ToList();
                    foreach (EdiLoop sch in listL_SCH)
                    {
                        SalesSchedule _Schedule = new SalesSchedule();
                        // var _SCHLoop = (EdiLoop)sch;
                        EdiSegment _SCH = (EdiSegment)sch.Content.FirstOrDefault(l => l.Definition.Name == "SCH");
                        if (_SCH != null)
                        {
                            _Schedule.REQ_QTY    = _SCH.Content[0].ToString();
                            _Schedule.ITM_NUMBER = _Item.ITM_NUMBER;
                            _Schedule.SCHED_LINE = _SchedLine.ToString().PadLeft(4, '0');
                            _Schedule.REQ_DATE   = _SCH.Content[5].ToString();
                        }
                        _ScheduleList.Add(_Schedule);
                        _SchedLine++;
                    }
                    _ItemNumber++;
                }
                _SapSalesOrder.ItemList     = _ItemList;
                _SapSalesOrder.ScheduleList = _ScheduleList;
                _SapSalesOrder.CustomerName = _CustomerName;
                _SapSalesOrder.CreateBy     = "Edi";
                _SapSalesOrder.SalesEmail   = c.SalesEmail;
                edi.SapSalesOrder           = _SapSalesOrder;
            }
            catch (Exception ex)
            {
                _Log = "\r\n" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + " setSalesOrderByEdi: Customer Id:" + c.SapCustomerId + " File :" + parserFile + "\r\n" + ex.Message;
                logger.Error(_Log);
                edi.Log = _Log;
            }
            return(_Log);
        }
        private static void SalesDetailPocos(IEnumerable <DataRow> details, DataRow r, SalesHeader i)
        {
            foreach (var d in details)
            {
                var detail = new SalesDetail
                {
                    SalesOrderDetailId = (int)d["SalesOrderDetailID"],
                    OrderQty           = (short)d["OrderQty"],
                    ProductId          = (int)d["ProductID"],
                    SpecialOfferId     = (int)d["SpecialOfferID"],
                    UnitPrice          = (decimal)d["UnitPrice"],
                    UnitPriceDiscount  = (decimal)d["UnitPriceDiscount"],
                    LineTotal          = (decimal)d["LineTotal"],
                    Rowguid            = r["rowguid"].ToString(),
                    ModifiedDate       = (DateTime)r["ModifiedDate"]
                };

                if (!d.IsNull("CarrierTrackingNumber"))
                {
                    detail.CarrierTrackingNumber = (string)d["CarrierTrackingNumber"];
                }

                if (i.Details == null)
                {
                    i.Details = new List <SalesDetail>();
                }

                i.Details.Add(detail);
            }
        }