Exemple #1
0
        void ReleaseDesignerOutlets()
        {
            if (AddReceiptsButton != null)
            {
                AddReceiptsButton.Dispose();
                AddReceiptsButton = null;
            }

            if (ReceiptInfo != null)
            {
                ReceiptInfo.Dispose();
                ReceiptInfo = null;
            }

            if (ReceiptName != null)
            {
                ReceiptName.Dispose();
                ReceiptName = null;
            }

            if (ReceiptsProjectNumber != null)
            {
                ReceiptsProjectNumber.Dispose();
                ReceiptsProjectNumber = null;
            }

            if (ReceiptsProjectTitle != null)
            {
                ReceiptsProjectTitle.Dispose();
                ReceiptsProjectTitle = null;
            }
        }
Exemple #2
0
        public override (ReceiptInfo, DeviceStatus) PrintReversalReceipt(ReversalReceipt reversalReceipt)
        {
            var receiptInfo = new ReceiptInfo();

            // Receipt header
            var(_, deviceStatus) = OpenReversalReceipt(
                reversalReceipt.Reason,
                reversalReceipt.ReceiptNumber,
                reversalReceipt.ReceiptDateTime,
                reversalReceipt.FiscalMemorySerialNumber,
                reversalReceipt.UniqueSaleNumber,
                reversalReceipt.Operator,
                reversalReceipt.OperatorPassword);
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.AddInfo($"Error occured while opening new fiscal reversal receipt");
                return(receiptInfo, deviceStatus);
            }

            (receiptInfo, deviceStatus) = PrintReceiptBody(reversalReceipt, true);
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.AddInfo($"Error occured while printing reversal receipt body");
                return(receiptInfo, deviceStatus);
            }

            return(receiptInfo, deviceStatus);
        }
        public PastHistoryDetailPage(CaseInfo currentCase)
        {
            _currentCase = currentCase;
            InitializeComponent();
            Emergency        = _currentCase.CaseTypeLabelText;
            CaseDate.Text    = _currentCase.CaseDateTime.ToString();
            Description.Text = _currentCase.CaseDescription;

            uih.GetHelperInfoByID(_currentCase.HelperID);
            UserPro helper = uih.GetHelperInfo();

            HelperImage.Source  = helper.Icon;
            HelperName.Text     = helper.FirstName;
            HelperRating.Text   = bcc.StarNoToStarSign(helper.Rating);
            HelperLanguage.Text = helper.FLanguage + "/" + helper.SLanguage;

            ReceiptInfo _receipt = uih.GetReceiptByID(_currentCase.ReceiptID);

            ServiceFee.Text   = _receipt.ServiceFee.ToString();
            EquipmentFee.Text = _receipt.EqFee.ToString();
            CycbisFee.Text    = _receipt.Surcharge.ToString();
            Tax.Text          = _receipt.Tax.ToString();
            Total.Text        = (_receipt.EqFee + _receipt.ServiceFee + _receipt.Surcharge + _receipt.Tax).ToString();

            PaymentNum.Text   = _receipt.PaymentName;
            CaseDateTime.Text = _currentCase.CaseDateTime.ToString();
        }
        public async void ReprintSelectedReceipt(object selectedReceipt)
        {
            ReceiptInfo receiptToProceed = selectedReceipt as ReceiptInfo;

            log.Debug("ReprintReceiptViewModel: Go to ReprintReceiptDataViewModel and reprint receipt for invoiceNo:{0}.", receiptToProceed.InvoiceNumber);
            await this.navigationService.Navigate <ReprintReceiptDataViewModel, string>(receiptToProceed.InvoiceNumber);
        }
Exemple #5
0
 public Business(string eventId, int amount, string current, int transactionCount, ReceiptInfo receiptInfo)
 {
     EventId          = eventId;
     Amount           = amount;
     Currency         = current;
     TransactionCount = transactionCount;
     ReceiptInfo      = receiptInfo;
 }
    public void Unsubscribe(object receipt)
    {
        ReceiptInfo r = receipt as ReceiptInfo;
        Action <string, EventBase> d;

        if (null != r && subscribers_.TryGetValue(r.name_, out d))
        {
            subscribers_[r.name_] = (Action <string, EventBase>)Delegate.Remove(d, r.delegate_);
        }
    }
Exemple #7
0
        public void Unsubscribe(object receipt)
        {
            ReceiptInfo r = receipt as ReceiptInfo;
            Delegate    d;

            if (null != r && subscribers_.TryGetValue(r.name_, out d))
            {
                subscribers_[r.name_] = Delegate.Remove(d, r.delegate_);
            }
        }
Exemple #8
0
    public void RemoveLitener(object receipt)
    {
        ReceiptInfo r = receipt as ReceiptInfo;
        Delegate    d;

        if (null != r && listeners_.TryGetValue(r.name_, out d))
        {
            listeners_[r.name_] = Delegate.Remove(d, r.delegate_);
        }
    }
            internal PurchaseResponseCallback(CMsgClientPurchaseResponse body)
            {
                Result         = (EResult)body.eresult;
                PurchaseResult = (EPurchaseResult)body.purchase_result_details;

                using (MemoryStream ms = new MemoryStream(body.purchase_receipt_info)) {
                    if (ReceiptInfo.TryReadAsBinary(ms))
                    {
                        foreach (KeyValue lineItem in ReceiptInfo["lineitems"].Children)
                        {
                            Items.Add((uint)lineItem["PackageID"].AsUnsignedLong(), lineItem["ItemDescription"].AsString());
                        }
                    }
                }
            }
        public override (ReceiptInfo, DeviceStatus) PrintReceipt(Receipt receipt)
        {
            var receiptInfo = new ReceiptInfo();

            // Abort all unfinished or erroneus receipts
            AbortReceipt();

            var(fiscalMemorySerialNumber, deviceStatus) = GetFiscalMemorySerialNumber();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.FiscalMemorySerialNumber = fiscalMemorySerialNumber;

            // Receipt header
            (_, deviceStatus) = OpenReceipt(
                receipt.UniqueSaleNumber,
                receipt.Operator,
                receipt.OperatorPassword
                );
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.AddInfo($"Error occured while opening new fiscal receipt");
                return(receiptInfo, deviceStatus);
            }

            try
            {
                deviceStatus = PrintReceiptBody(receipt);
                if (!deviceStatus.Ok)
                {
                    return(receiptInfo, deviceStatus);
                }
            }
            catch (StandardizedStatusMessageException e)
            {
                AbortReceipt();
                deviceStatus = new DeviceStatus();
                deviceStatus.AddError(e.Code, e.Message);
                return(receiptInfo, deviceStatus);
            }

            return(GetLastReceiptInfo());
        }
        internal ReceiptInfo GetReceiptByID(string receiptID)
        {
            ReceiptInfo tmp = new ReceiptInfo();
            //建立数据库连接
            MySqlConnection conn = new MySqlConnection(connStr);

            try
            {   //建立连接,打开数据库
                conn.Open();
                string sqlstr =
                    "SELECT ServiceFee,EqFee,Tax,Surcharges,PayTime FROM Receipts WHERE ReceiptID = @para1";

                MySqlCommand cmd = new MySqlCommand(sqlstr, conn);
                //通过设置参数的形式给SQL 语句串值
                cmd.Parameters.AddWithValue("para1", receiptID);
                //cmd.Parameters.AddWithValue("para2", password);

                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    tmp.ServiceFee      = reader.GetDouble(0);
                    tmp.EqFee           = reader.GetDouble(1);
                    tmp.Tax             = reader.GetDouble(2);
                    tmp.Surcharge       = reader.GetDouble(3);
                    tmp.PaymentDateTime = reader.GetDateTime(4);
                    tmp.PaymentName     = "7785-9085-3425-8797";
                }
                if (tmp != null)
                {
                    return(tmp);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                conn.Close();   //关闭连接
            }
            return(tmp);
        }
Exemple #12
0
        public override (ReceiptInfo, DeviceStatus) PrintReceipt(Receipt receipt)
        {
            var receiptInfo = new ReceiptInfo();

            var(fiscalMemorySerialNumber, deviceStatus) = GetFiscalMemorySerialNumber();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.FiscalMemorySerialNumber = fiscalMemorySerialNumber;

            // Receipt header
            (_, deviceStatus) = OpenReceipt(receipt.UniqueSaleNumber);
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.Statuses.Add($"Error occured while opening new fiscal receipt");
                return(receiptInfo, deviceStatus);
            }

            try
            {
                deviceStatus = PrintReceiptBody(receipt);
                if (!deviceStatus.Ok)
                {
                    return(receiptInfo, deviceStatus);
                }
            }
            catch (ArgumentNullException e)
            {
                AbortReceipt();
                deviceStatus = new DeviceStatus();
                deviceStatus.Statuses.Add($"Error occured while printing receipt items");
                deviceStatus.Errors.Add(e.Message);
                return(receiptInfo, deviceStatus);
            }

            return(GetLastReceiptInfo());
        }
Exemple #13
0
        public static void SendToOtherStation(object state)
        {
            ReceiptInfo ri = (ReceiptInfo)state;

            if (CommonData.localSettings.OtherPackingStationPort == 0)
            {
                return;
            }

            try
            {
                Byte[] request = Encoding.ASCII.GetBytes(string.Format("\x02{0},{1},{2}\x03", ri.orderNum, ri.materialNum, ri.qtyPacked));
                var    client  = new TcpClient(CommonData.localSettings.OtherPackingStationAddr, CommonData.localSettings.OtherPackingStationPort);
                var    stream  = client.GetStream();
                stream.Write(request, 0, request.Length);
            }
            catch (IOException)
            {
            }
            catch (SocketException)
            {
            }
        }
        public override (ReceiptInfo, DeviceStatus) PrintReceipt(Receipt receipt)
        {
            var receiptInfo = new ReceiptInfo();

            // Abort all unfinished or erroneus receipts
            AbortReceipt();

            var(fiscalMemorySerialNumber, deviceStatus) = GetFiscalMemorySerialNumber();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.FiscalMemorySerialNumber = fiscalMemorySerialNumber;

            // Opening receipt
            (_, deviceStatus) = OpenReceipt(
                receipt.UniqueSaleNumber,
                receipt.Operator,
                receipt.OperatorPassword
                );
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.AddInfo($"Error occured while opening new fiscal receipt");
                return(receiptInfo, deviceStatus);
            }

            // Printing receipt's body
            deviceStatus = PrintReceiptBody(receipt);
            if (!deviceStatus.Ok)
            {
                AbortReceipt();
                deviceStatus.AddInfo($"Error occured while printing receipt items");
                return(receiptInfo, deviceStatus);
            }

            // Get the receipt date and time (current fiscal device date and time)
            DateTime?dateTime;

            (dateTime, deviceStatus) = GetDateTime();
            if (!dateTime.HasValue || !deviceStatus.Ok)
            {
                AbortReceipt();
                return(receiptInfo, deviceStatus);
            }
            receiptInfo.ReceiptDateTime = dateTime.Value;

            // Get receipt amount
            decimal?receiptAmount;

            (receiptAmount, deviceStatus) = GetReceiptAmount();
            if (!receiptAmount.HasValue || !deviceStatus.Ok)
            {
                (_, deviceStatus) = AbortReceipt();
                return(receiptInfo, deviceStatus);
            }
            receiptInfo.ReceiptAmount = receiptAmount.Value;

            // Closing receipt
            string closeReceiptResponse;

            (closeReceiptResponse, deviceStatus) = CloseReceipt();
            if (!deviceStatus.Ok)
            {
                (_, deviceStatus) = AbortReceipt();
                deviceStatus.AddInfo($"Error occurred while closing the receipt");
                return(receiptInfo, deviceStatus);
            }

            // Get receipt number
            string lastDocumentNumberResponse;

            (lastDocumentNumberResponse, deviceStatus) = GetLastDocumentNumber(closeReceiptResponse);
            if (!deviceStatus.Ok)
            {
                (_, deviceStatus) = AbortReceipt();
                deviceStatus.AddInfo($"Error occurred while reading last document number");
                return(receiptInfo, deviceStatus);
            }
            receiptInfo.ReceiptNumber = lastDocumentNumberResponse;

            return(receiptInfo, deviceStatus);
        }
        public virtual (ReceiptInfo, DeviceStatus) PrintReceiptBody(Receipt receipt, bool reversalReceipt = false)
        {
            var receiptInfo = new ReceiptInfo();

            var(fiscalMemorySerialNumber, deviceStatus) = GetFiscalMemorySerialNumber();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.FiscalMemorySerialNumber = fiscalMemorySerialNumber;

            if (receipt.Items == null || receipt.Items.Count == 0)
            {
                deviceStatus.AddError("E410", "Receipt.Items must be not null or empty");
                return(receiptInfo, deviceStatus);
            }

            uint itemNumber = 0;

            // Receipt items
            foreach (var item in receipt.Items)
            {
                itemNumber++;
                if (item.Type == ItemType.Comment)
                {
                    (_, deviceStatus) = AddComment(receipt.UniqueSaleNumber, item.Text);
                    if (!deviceStatus.Ok)
                    {
                        deviceStatus.AddInfo($"Error occurred in Item {itemNumber}");
                        return(receiptInfo, deviceStatus);
                    }
                }
                else
                {
                    if (item.PriceModifierValue < 0m)
                    {
                        throw new StandardizedStatusMessageException("PriceModifierValue amount must be positive number", "E403");
                    }
                    if (item.PriceModifierValue != 0m && item.PriceModifierType == PriceModifierType.None)
                    {
                        throw new StandardizedStatusMessageException("PriceModifierValue must be 0 if priceModifierType is None", "E403");
                    }
                    try
                    {
                        (_, deviceStatus) = AddItem(
                            receipt.UniqueSaleNumber,
                            item.Text,
                            item.UnitPrice,
                            item.TaxGroup,
                            item.Quantity,
                            item.PriceModifierValue,
                            item.PriceModifierType,
                            reversalReceipt);
                    }
                    catch (StandardizedStatusMessageException e)
                    {
                        deviceStatus = new DeviceStatus();
                        deviceStatus.AddError(e.Code, e.Message);
                    }
                    if (!deviceStatus.Ok)
                    {
                        deviceStatus.AddInfo($"Error occurred in Item {itemNumber}");
                        return(receiptInfo, deviceStatus);
                    }
                }
            }

            // Get receipt number and amount
            string  receiptNumber;
            decimal?receiptAmount;

            (receiptNumber, receiptAmount, deviceStatus) = GetReceiptNumberAndAmount();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.ReceiptNumber = receiptNumber;
            receiptInfo.ReceiptAmount = receiptAmount ?? 0m;

            // Receipt payments
            if (receipt.Payments == null || receipt.Payments.Count == 0)
            {
                deviceStatus = FullPayment();
                if (!deviceStatus.Ok)
                {
                    deviceStatus.AddInfo($"Error occurred while making full payment in cash");
                    return(receiptInfo, deviceStatus);
                }
            }
            else
            {
                uint paymentNumber = 0;
                foreach (var payment in receipt.Payments)
                {
                    paymentNumber++;

                    if (payment.PaymentType == PaymentType.Change)
                    {
                        continue;
                    }

                    try
                    {
                        (_, deviceStatus) = AddPayment(payment.Amount, payment.PaymentType);
                    }
                    catch (StandardizedStatusMessageException e)
                    {
                        deviceStatus = new DeviceStatus();
                        deviceStatus.AddError(e.Code, e.Message);
                    }

                    if (!deviceStatus.Ok)
                    {
                        deviceStatus.AddInfo($"Error occurred in Payment {paymentNumber}");
                        return(receiptInfo, deviceStatus);
                    }
                }
            }

            // Get the receipt date and time (current fiscal device date and time)
            DateTime?dateTime;

            (dateTime, deviceStatus) = GetDateTime();
            if (!deviceStatus.Ok)
            {
                return(receiptInfo, deviceStatus);
            }

            receiptInfo.ReceiptDateTime = dateTime ?? DateTime.Now;

            if (deviceStatus.Ok)
            {
                deviceStatus = FullPayment();
            }

            return(receiptInfo, deviceStatus);
        }
Exemple #16
0
        public void AddNew(Receipts Receipt,
                           List <ReceiptDetails> lst_RD,
                           List <ReceiptsCard> lst_Card,
                           ReceiptInfo ri,
                           ReceiptMember rm, ref string ReceiptID)
        {
            ReceiptID = "";
            string[][] prm_R =
            {
                new string[] { "ReceiptId",            ""                                                    },
                new string[] { "Note",                 Receipt.Note                                          },
                //new string[] {"NoOfCustumers",Receipt.NoOfCustumers},
                new string[] { "NoOfCustumers",        "0"                                                   },
                new string[] { "CreatedBy",            Receipt.CreatedBy                                     },
                new string[] { "Status",               Receipt.Status                                        },
                new string[] { "TotalTax",             double.Parse(Receipt.TotalTax).ToString()             },
                new string[] { "TotalAmount",          double.Parse(Receipt.TotalAmount).ToString()          },
                new string[] { "TotalAmountBeforeTax", double.Parse(Receipt.TotalAmountBeforeTax).ToString() },
                new string[] { "DiscountAmount",       double.Parse(Receipt.DiscountAmount).ToString()       },
                new string[] { "TotalMoney",           double.Parse(Receipt.TotalMoney).ToString()           },
                new string[] { "CashPayAmt",           double.Parse(Receipt.CashPayAmt).ToString()           },
                new string[] { "CardPayAmt",           double.Parse(Receipt.CardPayAmt).ToString()           },
                new string[] { "ReturnAmt",            double.Parse(Receipt.ReturnAmt).ToString()            },
                new string[] { "ServiceCostAmount",    double.Parse(Receipt.ServiceCostAmount).ToString()    }
            };

            string[][][] prm_RD = new string[lst_RD.Count][][];
            int          i      = 0;

            foreach (ReceiptDetails rdt in lst_RD) //'TotalAmmount'
            {
                string[][] prm =
                {
                    new string[] { "ReceiptId",            ""                                                },
                    new string[] { "ProductId",            rdt.ProductId                                     },
                    new string[] { "PromotionId",          rdt.PromotionId                                   },
                    new string[] { "CreatedBy",            rdt.CreatedBy                                     },
                    new string[] { "Status",               rdt.Status                                        },
                    new string[] { "Qty",                  double.Parse(rdt.Qty).ToString()                  },
                    new string[] { "Price",                double.Parse(rdt.Price).ToString()                },
                    new string[] { "TotalAmountBeforeTax", double.Parse(rdt.TotalAmountBeforeTax).ToString() },
                    new string[] { "TaxAmount",            double.Parse(rdt.TaxAmount).ToString()            },
                    new string[] { "TotalAmount",          double.Parse(rdt.TotalAmount).ToString()          },
                    new string[] { "RefOrderId",           rdt.RefOrderId                                    },
                    new string[] { "DeskId",               rdt.DeskId                                        }
                };
                prm_RD[i] = prm;
                i++;
            }

            string[][][] prm_Card = null;
            if (lst_Card == null || lst_Card.Count == 0)
            {
                prm_Card = null;
            }
            else
            {
                i        = 0;
                prm_Card = new string[lst_Card.Count][][];
                foreach (ReceiptsCard rc in lst_Card)
                {
                    string[][] prm =
                    {
                        new string[] { "ReceiptId",      ""                                      },
                        new string[] { "CardNo",         rc.CardNo                               },
                        new string[] { "CardHolderName", rc.CardHolderName                       },
                        new string[] { "ExpiredDate",    rc.ExpiredDate                          },
                        new string[] { "CreatedBy",      rc.CreatedBy                            },
                        new string[] { "TotalAmount",    double.Parse(rc.TotalAmount).ToString() },
                        new string[] { "Bank",           rc.Bank                                 },
                        new string[] { "CardType",       rc.CardType                             },

                        new string[] { "TerminalId",     rc.TerminalId                           },
                        new string[] { "MerchantId",     rc.MerchantId                           },
                        new string[] { "TransType",      rc.TransType                            },
                        new string[] { "BatchNo",        rc.BatchNo                              },
                        new string[] { "TraceNo",        rc.TraceNo                              },
                        new string[] { "RefNo",          rc.RefNo                                },
                        new string[] { "AppCode",        rc.AppCode                              }
                    };
                    prm_Card[i] = prm;
                    i++;
                }
            }
            ///////
            string[][] prm_RI = { };
            if (ri != null)
            {
                string[][] prm =
                {
                    new string[] { "ReceiptId",    ""              },
                    new string[] { "CustomerName", ri.CustomerName },
                    new string[] { "Address",      ri.Address      },
                    new string[] { "Phone",        ri.Phone        },
                    new string[] { "Note",         ri.Note         }
                };
                prm_RI = prm;
            }
            else
            {
                prm_RI = null;
            }

            ////////////////
            string[][] prm_RM = { };
            if (rm != null)
            {
                string[][] prm =
                {
                    new string[] { "ReceiptId", ""           },
                    new string[] { "MemberId",  rm.MemberId  },
                    new string[] { "Score",     null         },
                    new string[] { "CreatedBy", rm.CreatedBy }
                };
                prm_RM = prm;
            }
            else
            {
                prm_RM = null;
            }


            Program.destopService.Tran_Insert_Receipt(Program.Username, Program.Password, ref errorString,
                                                      prm_R, prm_RD, prm_Card, prm_RM, prm_RI,
                                                      ref res, ref ReceiptID);
        }
Exemple #17
0
        public Entities.Order SubmitOrder(Guid userId, Entities.Order order)
        {
            var user = DbSession.Users.GetSingle(u => u.ID == userId);

            if (user == null)
            {
                throw new Exception("当前用户不存在");
            }

            // 计算运费
            decimal freight     = 10;
            decimal books_total = 0;

            foreach (var item in order.OrderItems)
            {
                var book = DbSession.Books.GetSingle(b => b.ID == item.BookID);
                books_total += book.SellingPrice.GetValueOrDefault() * (decimal)item.Quantity;
            }
            if (books_total >= 78)
            {
                freight = 0;
            }

            // 处理订单地址
            ReceiptInfo receipt = DbSession.ReceiptInfos.GetSingle(r => r.ID == order.Receipt.ID);

            if (receipt == null)
            {
                receipt = new ReceiptInfo
                {
                    ID          = Guid.NewGuid(),
                    Address     = order.Receipt.Address,
                    ReceiptName = order.Receipt.ReceiptName,
                    Phone       = order.Receipt.Phone,
                    Email       = order.Receipt.Email
                };
                user.Receipts.Add(receipt);
            }

            // 生成订单主体
            var newOrder = new Order
            {
                ID          = Guid.NewGuid(),
                NO          = DateTime.Now.ToString("yyyyMMddHHmm") + new Random().Next(0, 100),
                Freight     = freight,
                OrderPrice  = books_total + freight,
                SubmitDate  = DateTime.Now,
                State       = OrderState.Submitted,
                ReceiptID   = receipt.ID,
                UserID      = user.ID,
                ShipDate    = null,
                IsAudited   = false,
                AuditDate   = null,
                AuditUserID = null
            };

            DbSession.Orders.Add(newOrder, false);

            // 生成订单明细
            newOrder = user.Orders.FirstOrDefault(o => o.ID == newOrder.ID);
            foreach (var item in order.OrderItems)
            {
                var book    = DbSession.Books.GetSingle(b => b.ID == item.BookID);
                var newItem = new OrderItem
                {
                    BookID    = book.ID,
                    Quantity  = item.Quantity,
                    UnitPrice = book.SellingPrice.GetValueOrDefault()
                };
                newOrder.OrderItems.Add(newItem);
            }

            // 生成订单跟踪
            OderTrace trace = new OderTrace
            {
                ID              = Guid.NewGuid(),
                Description     = "客户" + user.Name + "提交了订单",
                SubmittedUserID = user.ID,
                SubmitTime      = DateTime.Now
            };

            newOrder.Traces.Add(trace);

            // 删除购物车商品
            foreach (var item in order.OrderItems)
            {
                var cartItem = user.ShoppingCart.CartItems.FirstOrDefault(i => i.BookID == item.BookID);
                if (cartItem == null)
                {
                    continue;
                }
                DbSession.CartItems.Delete(cartItem, false);
            }

            DbSession.SaveChanges();

            return(newOrder);
        }
        public IDictionary <string, object> Post(BookingDetail objbookingDetail)
        {
            Dictionary <string, object> ReceiptInfoDetails        = new Dictionary <string, object>();
            List <ReceiptInfo>          objListReceiptInfo        = new List <ReceiptInfo>();
            List <PendingROIDInfo>      objListPendingROIDInfo    = new List <PendingROIDInfo>();
            List <AdvanceReceiptInfo>   objListAdvanceReceiptInfo = new List <AdvanceReceiptInfo>();

            try
            {
                string strXml = "<ebooking><actionname>" + objbookingDetail.Parametername + "</actionname>"
                                + "<loguserid>" + objbookingDetail.UserId + "</loguserid>"
                                + "<roid>" + objbookingDetail.ROID + "</roid>"
                                + "<revenuecentreid>" + objbookingDetail.RevenueCentreID + "</revenuecentreid></ebooking>";
                DataSet   objds  = objHomeDAL.GeteBookingControlData(strXml);
                DataTable objdt  = objds.Tables[0];
                DataTable objdt1 = objds.Tables[1];
                DataTable objdt2 = objds.Tables[2];

                ReceiptInfo objReceiptInfo;
                if (objdt.Rows.Count > 0)
                {
                    foreach (DataRow dr in objdt.Rows)
                    {
                        objReceiptInfo               = new ReceiptInfo();
                        objReceiptInfo.AgencyID      = Convert.ToString(dr["AgencyID"]);
                        objReceiptInfo.ClientID      = Convert.ToString(dr["ClientID"]);
                        objReceiptInfo.ClientName    = Convert.ToString(dr["ClientName"]);
                        objReceiptInfo.CasualAddress = Convert.ToString(dr["CasualAddress"]);
                        objReceiptInfo.City          = Convert.ToString(dr["City"]);
                        objReceiptInfo.Zip           = Convert.ToString(dr["zip"]);
                        objReceiptInfo.Phone         = Convert.ToString(dr["Phone"]);
                        objReceiptInfo.AgencyName    = Convert.ToString(dr["AgencyName"]);
                        objListReceiptInfo.Add(objReceiptInfo);
                    }
                }

                PendingROIDInfo objPendingROIDInfo;
                if (objdt1.Rows.Count > 0)
                {
                    foreach (DataRow dr in objdt1.Rows)
                    {
                        objPendingROIDInfo      = new PendingROIDInfo();
                        objPendingROIDInfo.ROID = Convert.ToString(dr["ROID"]);
                        objPendingROIDInfo.Net  = Convert.ToString(dr["Net"]);
                        objListPendingROIDInfo.Add(objPendingROIDInfo);
                    }
                }

                AdvanceReceiptInfo objAdvanceReceiptInfo;
                if (objdt2.Rows.Count > 0)
                {
                    foreach (DataRow dr in objdt2.Rows)
                    {
                        objAdvanceReceiptInfo               = new AdvanceReceiptInfo();
                        objAdvanceReceiptInfo.ReceiptID     = Convert.ToString(dr["ReceiptID"]);
                        objAdvanceReceiptInfo.BalanceAmount = Convert.ToDouble(dr["BalanceAmount"]);
                        objListAdvanceReceiptInfo.Add(objAdvanceReceiptInfo);
                    }
                }

                ReceiptInfoDetails.Add("ReceiptInfo", objListReceiptInfo);
                ReceiptInfoDetails.Add("PendingROIDInfo", objListPendingROIDInfo);
                ReceiptInfoDetails.Add("AdvanceReceiptInfo", objListAdvanceReceiptInfo);
            }
            catch (Exception ex)
            {
            }
            return(ReceiptInfoDetails);
        }
Exemple #19
0
        public static ReceiptsAll GetAllInfo(string ReceiptID)
        {
            ReceiptsAll res = new ReceiptsAll();

            DataSet ds = new DataSet();

            string[][] param =
            {
                new string[] { "p_ReceiptId", ReceiptID },
            };
            string errorString = "";
            string cnStr       = GetConnectionString();

            DataStoreProcQuery_Param(cnStr, "spSelect_Receipt_AllInfo", ref ds, param, ref errorString);

            if (string.IsNullOrEmpty(errorString) && ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataTable dt = ds.Tables[0];
                    DataRow   dr = dt.Rows[0];
                    Receipts  rc = new Receipts();
                    rc.ReceiptId            = dr["ReceiptId"].ToString();
                    rc.CreatedBy            = dr["CreatedBy"].ToString();
                    rc.CreatedDate          = dr["CreatedDate"].ToString();
                    rc.TotalAmountBeforeTax = double.Parse(dr["TotalAmountBeforeTax"].ToString()).ToString("0,0");
                    rc.TotalTax             = double.Parse(dr["TotalTax"].ToString()).ToString("0,0");
                    rc.TotalAmount          = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");
                    rc.DiscountAmount       = double.Parse(dr["DiscountAmount"].ToString()).ToString("0,0");
                    rc.TotalMoney           = double.Parse(dr["TotalMoney"].ToString()).ToString("0,0");
                    rc.CashPayAmt           = double.Parse(dr["CashPayAmt"].ToString()).ToString("0,0");
                    rc.CardPayAmt           = double.Parse(dr["CardPayAmt"].ToString()).ToString("0,0");
                    rc.ReturnAmt            = double.Parse(dr["ReturnAmt"].ToString()).ToString("0,0");
                    res.receipt             = rc;
                }
                /////
                if (ds.Tables[1].Rows.Count > 0)
                {
                    DataTable             dt  = ds.Tables[1];
                    List <ReceiptDetails> lst = new List <ReceiptDetails>();
                    foreach (DataRow dr in dt.Rows)
                    {
                        ReceiptDetails rc = new ReceiptDetails();
                        rc.ReceiptId            = dr["ReceiptId"].ToString();
                        rc.ProductId            = dr["ProductId"].ToString();
                        rc.ProductName          = GetProductName(dr["ProductId"].ToString());
                        rc.Qty                  = double.Parse(dr["Qty"].ToString()).ToString("0,0");
                        rc.Price                = double.Parse(dr["Price"].ToString()).ToString("0,0");
                        rc.TotalAmountBeforeTax = double.Parse(dr["TotalAmountBeforeTax"].ToString()).ToString("0,0");
                        rc.TaxAmount            = double.Parse(dr["TaxAmount"].ToString()).ToString("0,0");
                        rc.TotalAmount          = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");

                        lst.Add(rc);
                    }
                    res.lst_Detail = lst;
                }
                ///thẻ
                if (ds.Tables[2].Rows.Count > 0)
                {
                    DataTable           dt  = ds.Tables[2];
                    List <ReceiptsCard> lst = new List <ReceiptsCard>();
                    foreach (DataRow dr in dt.Rows)
                    {
                        ReceiptsCard rc = new ReceiptsCard();
                        rc.ReceiptId      = dr["ReceiptId"].ToString();
                        rc.CardNo         = dr["CardNo"].ToString();
                        rc.CardHolderName = dr["CardHolderName"].ToString();
                        rc.ExpiredDate    = dr["ExpiredDate"].ToString();
                        rc.CardType       = dr["CardType"].ToString();
                        rc.Bank           = dr["Bank"].ToString();
                        rc.TotalAmount    = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");
                        lst.Add(rc);
                    }
                    res.lst_card = lst;
                }

                // ReceiptInfo
                if (ds.Tables[3].Rows.Count > 0)
                {
                    DataTable   dt = ds.Tables[3];
                    DataRow     dr = dt.Rows[0];
                    ReceiptInfo rc = new ReceiptInfo();
                    rc.ReceiptId    = dr["ReceiptId"].ToString();
                    rc.CustomerName = dr["CustomerName"].ToString();
                    rc.Address      = dr["Address"].ToString();
                    rc.Phone        = dr["Phone"].ToString();
                    rc.Note         = dr["Note"].ToString();
                    res.receiptInfo = rc;
                }

                // ReceiptMember
                if (ds.Tables[4].Rows.Count > 0)
                {
                    DataTable     dt = ds.Tables[4];
                    DataRow       dr = dt.Rows[0];
                    ReceiptMember rc = new ReceiptMember();
                    rc.ReceiptId = dr["ReceiptId"].ToString();
                    rc.MemberId  = dr["MemberId"].ToString();
                    rc.CreatedBy = dr["CreatedBy"].ToString();
                    DataTable dte = GetMemberInfo(dr["MemberId"].ToString());
                    if (dte != null)
                    {
                        DataRow drr = dte.Rows[0];
                        rc.MemberCode      = drr["MemberCode"].ToString();
                        rc.ObjectId        = drr["ObjectId"].ToString();
                        rc.NumberOfVissits = drr["NumberOfVissits"].ToString();
                        rc.LastestDate     = drr["LastestDate"].ToString();
                        rc.MemberType      = drr["MemberType"].ToString();

                        rc.MemberScore = drr["MemberScore"].ToString();
                        rc.ObjectGroup = drr["ObjectGroup"].ToString();
                        rc.ObjectType  = drr["ObjectType"].ToString();
                        rc.Tel         = drr["Tel"].ToString();
                        rc.Email       = drr["Email"].ToString();
                        rc.MemberCode  = drr["Gender"].ToString();
                        rc.FullName    = drr["FullName"].ToString();
                        rc.TemAdd      = drr["TemAdd"].ToString();
                    }
                    res.receiptMember = rc;
                }
            }
            else
            {
                res = null;
            }

            return(res);
        }
Exemple #20
0
        public ReceiptsAll GetAllInfo(string ReceiptID)
        {
            ReceiptsAll res = new ReceiptsAll();

            DataSet ds = new DataSet();

            string[][] param =
            {
                new string[] { "p_ReceiptId", ReceiptID },
            };
            Program.destopService.DataStoreProcQuery_Param(Program.Username, Program.Password, "spSelect_Receipt_AllInfo", ref ds, param, ref errorString);

            if (string.IsNullOrEmpty(errorString) && ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataTable dt = ds.Tables[0];
                    DataRow   dr = dt.Rows[0];
                    Receipts  rc = new Receipts();
                    rc.ReceiptId            = dr["ReceiptId"].ToString();
                    rc.CreatedBy            = dr["CreatedBy"].ToString();
                    rc.CreatedDate          = Convert.ToDateTime(dr["CreatedDate"].ToString()).ToString("dd/MM/yy H:s");
                    rc.TotalAmountBeforeTax = double.Parse(dr["TotalAmountBeforeTax"].ToString()).ToString("0,0");
                    rc.TotalTax             = double.Parse(dr["TotalTax"].ToString()).ToString("0,0");
                    rc.TotalAmount          = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");
                    rc.DiscountAmount       = double.Parse(dr["DiscountAmount"].ToString()).ToString("0,0");
                    rc.TotalMoney           = double.Parse(dr["TotalMoney"].ToString()).ToString("0,0");
                    rc.CashPayAmt           = double.Parse(dr["CashPayAmt"].ToString()).ToString("0,0");
                    rc.CardPayAmt           = double.Parse(dr["CardPayAmt"].ToString()).ToString("0,0");
                    rc.ReturnAmt            = double.Parse(dr["ReturnAmt"].ToString()).ToString("0,0");

                    rc.ServiceCostAmount = double.Parse(dr["ServiceCostAmount"].ToString()).ToString("0,0");

                    res.receipt = rc;
                }
                /////
                if (ds.Tables[1].Rows.Count > 0)
                {
                    Tuple <string, string> result;
                    DataTable             dt  = ds.Tables[1];
                    List <ReceiptDetails> lst = new List <ReceiptDetails>();
                    foreach (DataRow dr in dt.Rows)
                    {
                        ReceiptDetails rc = new ReceiptDetails();
                        rc.ReceiptId = dr["ReceiptId"].ToString();
                        rc.ProductId = dr["ProductId"].ToString();
                        if (dr["ProductId"].ToString() != "DISCOUNT")
                        {
                            result = GetProductInfoForReceipt(dr["ProductId"].ToString());
                            //rc.ProductName = GetProductName(dr["ProductId"].ToString());
                            rc.ProductName = result.Item1;
                            rc.IsBuffet    = result.Item2;
                        }
                        else
                        {
                            rc.ProductName = dr["ProductId"].ToString();
                            rc.IsBuffet    = "0";
                        }

                        rc.Qty   = double.Parse(dr["Qty"].ToString()).ToString("0,0");
                        rc.Price = double.Parse(dr["Price"].ToString()).ToString("0,0");
                        rc.TotalAmountBeforeTax = double.Parse(dr["TotalAmountBeforeTax"].ToString()).ToString("0,0");
                        rc.TaxAmount            = double.Parse(dr["TaxAmount"].ToString()).ToString("0,0");
                        rc.TotalAmount          = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");

                        lst.Add(rc);
                    }

                    //Duyệt lại lst va set theo thu tu
                    List <ReceiptDetails> lstNew = new List <ReceiptDetails>();
                    //Lấy sp khác buffet
                    foreach (ReceiptDetails rd in lst)
                    {
                        ReceiptDetails rds = new ReceiptDetails();
                        if (rd.IsBuffet != "1")
                        {
                            rds.ReceiptId = rd.ReceiptId;
                            rds.ProductId = rd.ProductId;

                            rds.ProductName = rd.ProductName;
                            rds.IsBuffet    = rd.IsBuffet;

                            rds.Qty   = rd.Qty;
                            rds.Price = rd.Price;
                            rds.TotalAmountBeforeTax = rd.TotalAmountBeforeTax;
                            rds.TaxAmount            = rd.TaxAmount;
                            rds.TotalAmount          = rd.TotalAmount;

                            lstNew.Add(rds);
                        }
                    }
                    if (lst.Count > lstNew.Count)
                    {
                        //Lấy sp là buffet và price != 0
                        foreach (ReceiptDetails rd in lst)
                        {
                            ReceiptDetails rds1 = new ReceiptDetails();
                            if (rd.IsBuffet == "1" && double.Parse(rd.Price) > 0)
                            {
                                rds1.ReceiptId = rd.ReceiptId;
                                rds1.ProductId = rd.ProductId;

                                rds1.ProductName = rd.ProductName;
                                rds1.IsBuffet    = rd.IsBuffet;

                                rds1.Qty   = rd.Qty;
                                rds1.Price = rd.Price;
                                rds1.TotalAmountBeforeTax = rd.TotalAmountBeforeTax;
                                rds1.TaxAmount            = rd.TaxAmount;
                                rds1.TotalAmount          = rd.TotalAmount;

                                lstNew.Add(rds1);
                            }
                        }

                        foreach (ReceiptDetails rd in lst)
                        {
                            ReceiptDetails rds2 = new ReceiptDetails();
                            if (rd.IsBuffet == "1" && double.Parse(rd.Price) == 0)
                            {
                                rds2.ReceiptId = rd.ReceiptId;
                                rds2.ProductId = rd.ProductId;

                                rds2.ProductName = rd.ProductName;
                                rds2.IsBuffet    = rd.IsBuffet;

                                rds2.Qty   = rd.Qty;
                                rds2.Price = rd.Price;
                                rds2.TotalAmountBeforeTax = rd.TotalAmountBeforeTax;
                                rds2.TaxAmount            = rd.TaxAmount;
                                rds2.TotalAmount          = rd.TotalAmount;

                                lstNew.Add(rds2);
                            }
                        }
                    }
                    res.lst_Detail = lstNew;
                }
                ///thẻ
                if (ds.Tables[2].Rows.Count > 0)
                {
                    DataTable           dt  = ds.Tables[2];
                    List <ReceiptsCard> lst = new List <ReceiptsCard>();
                    foreach (DataRow dr in dt.Rows)
                    {
                        ReceiptsCard rc = new ReceiptsCard();
                        rc.ReceiptId      = dr["ReceiptId"].ToString();
                        rc.CardNo         = dr["CardNo"].ToString();
                        rc.CardHolderName = dr["CardHolderName"].ToString();
                        rc.ExpiredDate    = dr["ExpiredDate"].ToString();
                        rc.CardType       = dr["CardType"].ToString();
                        rc.Bank           = dr["Bank"].ToString();
                        rc.TotalAmount    = double.Parse(dr["TotalAmount"].ToString()).ToString("0,0");
                        lst.Add(rc);
                    }
                    res.lst_card = lst;
                }

                // ReceiptInfo
                if (ds.Tables[3].Rows.Count > 0)
                {
                    DataTable   dt = ds.Tables[3];
                    DataRow     dr = dt.Rows[0];
                    ReceiptInfo rc = new ReceiptInfo();
                    rc.ReceiptId    = dr["ReceiptId"].ToString();
                    rc.CustomerName = dr["CustomerName"].ToString();
                    rc.Address      = dr["Address"].ToString();
                    rc.Phone        = dr["Phone"].ToString();
                    rc.Note         = dr["Note"].ToString();
                    res.receiptInfo = rc;
                }

                // ReceiptMember
                if (ds.Tables[4].Rows.Count > 0)
                {
                    DataTable     dt = ds.Tables[4];
                    DataRow       dr = dt.Rows[0];
                    ReceiptMember rc = new ReceiptMember();
                    rc.ReceiptId = dr["ReceiptId"].ToString();
                    rc.MemberId  = dr["MemberId"].ToString();
                    rc.CreatedBy = dr["CreatedBy"].ToString();
                    DataTable dte = GetMemberInfo(dr["MemberId"].ToString());
                    if (dte != null)
                    {
                        DataRow drr = dte.Rows[0];
                        rc.MemberCode      = drr["MemberCode"].ToString();
                        rc.ObjectId        = drr["ObjectId"].ToString();
                        rc.NumberOfVissits = drr["NumberOfVissits"].ToString();
                        rc.LastestDate     = drr["LastestDate"].ToString();
                        rc.MemberType      = drr["MemberType"].ToString();

                        rc.MemberScore = drr["MemberScore"].ToString();
                        rc.ObjectGroup = drr["ObjectGroup"].ToString();
                        rc.ObjectType  = drr["ObjectType"].ToString();
                        rc.Tel         = drr["Tel"].ToString();
                        rc.Email       = drr["Email"].ToString();
                        rc.MemberCode  = drr["Gender"].ToString();
                        rc.FullName    = drr["FullName"].ToString();
                        rc.TemAdd      = drr["TemAdd"].ToString();
                    }
                    res.receiptMember = rc;
                }
            }
            else
            {
                res = null;
            }

            return(res);
        }