Exemplo n.º 1
0
 public OrderSession(order_session session)
 {
     this.SessionGuid     = session.session_guid;
     this.SessionId       = session.id;
     this.SaleOrderNo     = session.sale_order_no;
     this.SaleOrderStatus = session.sale_order_status;
     this.POSInvoiceNo    = session.pos_invice_no;
     this.POSOrderNo      = session.pos_order_no;
     this.POSStatus       = session.pos_order_status;
     this.POSSessionKey   = session.pos_order_key;
 }
        private OrderSession SaveSessionOrder(POSAirPortClassesDataContext _posDB, OrderHeader order, df_header_onl new_order)
        {
            // order_session db save
            var new_session_order = new order_session();

            new_session_order.session_guid      = Guid.NewGuid();
            new_session_order.sale_agent_code   = order.NewOrder.AgentCode;
            new_session_order.sale_order_no     = order.NewOrder.OrderNo;
            new_session_order.sale_order_status = "Create";
            new_session_order.sale_invoice_no   = order.NewOrder.InvoiceNo;
            new_session_order.sale_platform     = "online";
            var obj_key = new OrderKey();

            obj_key.Date  = new_order.data_date.Date.ToString();
            obj_key.DocNO = new_order.doc_no.ToString();
            obj_key.MacNo = new_order.machine_no.Trim();
            new_session_order.pos_order_key    = JsonConvert.SerializeObject(obj_key);
            new_session_order.pos_order_no     = new_order.machine_no.Trim() + "-" + new_order.doc_no;
            new_session_order.pos_order_status = new_order.LastStatus;
            new_session_order.pos_invice_no    = new_order.machine_no.Trim() + "-" + new_order.runno;
            new_session_order.create_date      = DateTime.Now;
            new_session_order.modified_date    = DateTime.Now;
            _omDB.order_sessions.InsertOnSubmit(new_session_order);
            _omDB.SubmitChanges();
            // order_tran db save
            var new_tren_order = new order_transaction();

            new_tren_order.create_date = DateTime.Now;
            new_tren_order.session_id  = new_session_order.id;
            new_tren_order.datail      = "Create Sale Order Online [" + new_session_order.sale_order_no + "] <---> POS Order [" + new_session_order.pos_order_no + "]";
            _omDB.order_transactions.InsertOnSubmit(new_tren_order);
            _omDB.SubmitChanges();

            SaveLogInterface(_posDB, order, new_session_order);

            return(new OrderSession(new_session_order));
        }
        private void SaveLogInterface(POSAirPortClassesDataContext _posDB, OrderHeader order, order_session new_session_order)
        {
            // order_header db save
            var new_order_header = new order_header();

            new_order_header.session_id    = new_session_order.id;
            new_order_header.order_type    = order.Flight.Terminal;
            new_order_header.member_id     = order.NewOrder.MemberID;
            new_order_header.full_name     = order.Billing.FirstName + " " + order.Billing.LastName;
            new_order_header.passport_no   = order.Billing.PassportNo;
            new_order_header.country       = order.Billing.CountryCode;
            new_order_header.airport_code  = order.Flight.AirportCode;
            new_order_header.terminal_code = order.Flight.Terminal;
            new_order_header.airline_code  = order.Flight.AirlineCode;
            new_order_header.flight_code   = order.Flight.FlightCode;
            new_order_header.flight_no     = order.Flight.FlightCode;
            //new_order_header.flight_
            new_order_header.reference_1 = "";
            new_order_header.reference_2 = "";
            new_order_header.reference_3 = "";
            new_order_header.remark      = "";
            new_order_header.create_date = DateTime.Now;
            _omDB.order_headers.InsertOnSubmit(new_order_header);
            _omDB.SubmitChanges();

            // db save new order_detail and order_discount
            foreach (var item in order.Items.Select((value, index) => new { Value = value, Index = index }))
            {
                order_detail new_item = new order_detail();
                new_item.header_id       = new_order_header.id;
                new_item.line_no         = item.Index + 1;
                new_item.sub_order_type  = "I";
                new_item.article_code    = item.Value.MaterialCode;
                new_item.quantity        = item.Value.Quantity;
                new_item.selling_price   = item.Value.SellingPrice;
                new_item.total_amt       = item.Value.Amount;
                new_item.dis_rate        = item.Value.DiscountRate;
                new_item.dis_amt         = item.Value.Discount;
                new_item.dis_pro_code    = item.Value.PromoCode;
                new_item.sp_dis_amt      = item.Value.SPDiscount;
                new_item.sp_dis_rate     = item.Value.SPDiscountRate;
                new_item.sp_dis_pro_code = item.Value.SPPromoCode;
                new_item.net_amt         = item.Value.TotalNet;
                new_item.reference_1     = "";
                new_item.reference_2     = "";
                new_item.reference_3     = "";

                _omDB.order_details.InsertOnSubmit(new_item);
                _omDB.SubmitChanges();
            }
            // new df_payment_onl
            var master_paymath = _posDB.df_paymeths.ToList();

            foreach (var payment in order.Payments.Select((value, index) => new { Value = value, Index = index }))
            {
                decimal amt_curr = 0;
                var     paymath  = master_paymath.FirstOrDefault(x => x.method_code.Trim() == payment.Value.Code.Trim());
                if (paymath != null)
                {
                    if (paymath.check_voucher || paymath.is_cashcard)
                    {
                        amt_curr = 0;
                    }
                    else
                    {
                        amt_curr = payment.Value.Amount * 1;
                    }
                }

                order_payment new_payment = new order_payment();
                new_payment.header_id          = new_order_header.id;
                new_payment.payment_type       = payment.Value.Code;
                new_payment.paymemt_agent      = "";
                new_payment.paymemt_session_id = "";
                new_payment.paymemt_ref_no     = "";
                new_payment.payment_code       = payment.Value.Code;
                new_payment.paymemt_amt        = payment.Value.Amount;
                new_payment.paymemt_datetime   = DateTime.Now;
                _omDB.order_payments.InsertOnSubmit(new_payment);
                _omDB.SubmitChanges();
            }
        }