Exemplo n.º 1
0
        /// <summary>
        /// 商品对帐
        /// </summary>
        /// <param name="storeNo"></param>
        /// <param name="posId"></param>
        /// <param name="cashierId"></param>
        /// <param name="cashierName"></param>
        /// <param name="dtFrom"></param>
        /// <param name="dtTo"></param>
        /// <param name="intPrintLen"></param>
        /// <returns></returns>
        public List <string> ItemAccountStatement(string storeNo, string posId, string cashierId, string cashierName, DateTime dtFrom, DateTime dtTo, int intPrintLen)
        {
            int QtyLen  = 6;  //数量长度
            int PrcLen  = 6;  //单价长度
            int ItemLen = 15; //商品号
            int CntLen  = 6;  //

            List <string> list2;
            List <string> list = new List <string>();

            try
            {
                string    str   = "";
                DataTable table = new DataTable();
                table = base._dal.ItemAccountStatement(storeNo, cashierId, dtFrom, dtTo);
                if ((table == null) || (table.Rows.Count == 0))
                {
                    list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                    list.Add(Gfunc.PrintStrAlign("商品对帐 ", intPrintLen, TextAlign.Center));
                    str = "";
                    list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                    list.Add("收银员(" + cashierId + ")今天无收付款记录. ");
                    return(list);
                }
                List <t_operator> cashierInfo = base._dal.GetOperatorInfo(cashierId, Gattr.BranchNo);
                list.Add("");
                list.Add(Gfunc.PrintStrAlign("   商品对帐单   ", intPrintLen, TextAlign.Center));
                list.Add(Gfunc.PrintStrAlign("================", intPrintLen, TextAlign.Center));
                str = "";
                list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                list.Add("  机构: " + base._dal.GetBranchName(storeNo));
                //list.Add("  仓库: " + base._dal.GetBranchName(storeNo));
                list.Add("  收银机号: " + posId);
                list.Add("  收 银 员:[" + cashierId + "]" + cashierInfo[0].oper_name.Trim());
                list.Add("  对账日期: " + DateTime.Today.ToString("yyyy-MM-dd"));
                str = "";
                list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                string item = (Gfunc.PrintStrAlign("品名", ItemLen, TextAlign.Left) + Gfunc.PrintStrAlign("售价", PrcLen, TextAlign.Right)) + Gfunc.PrintStrAlign("数量", QtyLen, TextAlign.Center) + Gfunc.PrintStrAlign("金额", CntLen, TextAlign.Right);
                list.Add(item);
                decimal num  = 0M;
                decimal num2 = 0M;
                foreach (DataRow row in table.Rows)
                {
                    decimal num6;
                    string  s = row["item_name"].ToString().Trim();
                    if (ItemLen < Encoding.Default.GetByteCount(s))
                    {
                        s = SIString.SubChar(s, ItemLen);
                    }
                    string  str4 = Gfunc.PrintStrAlign(s, ItemLen, TextAlign.Left);
                    decimal num3 = SIString.TryDec(row["sale_price"]);
                    string  str5 = Gfunc.PrintStrAlign(num3.ToString(Gattr.PosSaleAmtPoint), PrcLen, TextAlign.Right);
                    decimal num4 = SIString.TryDec(row["sale_qnty"]);
                    num += (row["sale_way"].ToString() == "B") ? (num4 * -1M) : num4;
                    string  str6 = Gfunc.PrintStrAlign((row["sale_way"].ToString() == "B") ? (num6 = num4 * -1M).ToString("N0") : num4.ToString("N0"), QtyLen, TextAlign.Center);
                    decimal num5 = num3 * num4;
                    num2 += (row["sale_way"].ToString() == "B") ? (num5 * -1M) : num5;
                    list.Add(str4 + str5 + str6 + Gfunc.PrintStrAlign((row["sale_way"].ToString() == "B") ? (num6 = num5 * -1M).ToString(Gattr.PosSaleAmtPoint) : num5.ToString(Gattr.PosSaleAmtPoint), CntLen, TextAlign.Right));
                }
                list.Add(str.PadLeft((Gattr.PrtLen < 0) ? 0 : Gattr.PrtLen, '-'));
                string str8 = (Gfunc.PrintStrAlign("合计:", ItemLen, TextAlign.Left) + Gfunc.PrintStrAlign("", PrcLen, TextAlign.Right)) + Gfunc.PrintStrAlign(num.ToString("N0"), QtyLen, TextAlign.Center) + Gfunc.PrintStrAlign(num2.ToString(Gattr.PosSaleAmtPoint), CntLen, TextAlign.Right);
                list.Add(str8);
                list.Add(Gfunc.PrintStrAlign("==完==", Gattr.PrtLen, TextAlign.Center));
                list2 = list;
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return(list2);
        }