Example #1
0
        /// <summary>
        /// 生成对帐单据
        /// </summary>
        /// <param name="storeNo"></param>
        /// <param name="posId"></param>
        /// <param name="cashierId"></param>
        /// <param name="dtFrom"></param>
        /// <param name="dtTo"></param>
        /// <param name="intPrintLen"></param>
        /// <returns></returns>
        public List <string> AccountReportFromServer(string storeNo, string posId, string cashierId, DateTime dtFrom, DateTime dtTo, int intPrintLen)
        {
            List <string> list3;
            List <string> list = new List <string>();

            try
            {
                string  str      = "";
                string  str2     = string.Empty;
                string  str3     = string.Empty;
                int     num      = 0;
                int     result   = 0;
                int     num3     = 0;
                int     num4     = 0;
                decimal num5     = 0M;
                decimal num6     = 0M;
                decimal num7     = 0M;
                string  branchNo = Gattr.BranchNo;//storeNo.Substring(0, 4);
                DataSet set      = new DataSet();
                set = base._dal.GetPayCash(branchNo, cashierId, dtFrom, dtTo);
                if (set != null)
                {
                    DataTable table = set.Tables["t_rm_cashier_info"];
                    if (((table == null) || (table.Rows.Count == 0)) || (Convert.ToInt32(table.Rows[0][0]) == 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(Gattr.OperId, 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(branchNo));
                    //list.Add("  仓库: " + base._dal.GetBranchName(storeNo));
                    list.Add("  收银机号: " + posId);
                    list.Add("  收 银 员: [" + cashierId.Trim() + "] " + cashierInfo[0].oper_name.Trim());
                    list.Add("  对账日期: " + DateTime.Today.ToString("yyyy-MM-dd"));
                    list.Add("  首笔: " + Convert.ToDateTime(table.Rows[0][1]).ToString("s"));
                    list.Add("  末笔: " + Convert.ToDateTime(table.Rows[0][2]).ToString("s"));
                    list.Add("  笔数: " + table.Rows[0][0].ToString());
                    str = "";
                    list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                    DataTable table2 = set.Tables["t_rm_scash_info"];
                    if ((table2 != null) && (table2.Rows.Count > 0))
                    {
                        result = 0;
                        num5   = 0M;
                        int.TryParse(table2.Rows[0]["count"].ToString(), out result);
                        decimal.TryParse(table2.Rows[0]["amount"].ToString(), out num5);
                        list.Add("赠送");
                        list.Add("--笔数: " + Gfunc.PrintStrAlign(result.ToString(), 6, TextAlign.Left) + "--金额: " + num5.ToString(Gattr.PosSaleAmtPoint));
                    }
                    DataTable table3 = set.Tables["t_rm_jycash_info"];
                    decimal   num8   = 0M;
                    if ((table3 != null) && (table3.Rows.Count > 0))
                    {
                        List <t_dict_payment_info> paymentInfo = base._dal.GetPaymentInfo(" pay_flag = '0' or pay_flag = '1' or pay_flag='6' ");
                        foreach (t_dict_payment_info _info in paymentInfo)
                        {
                            for (int i = 1; i <= 3; i++)
                            {
                                switch (i)
                                {
                                case 1:
                                    str2 = "A";
                                    str3 = "销售";
                                    num  = 1;
                                    break;

                                case 2:
                                    str2 = "B";
                                    str3 = "退货";
                                    num  = -1;
                                    break;

                                case 3:
                                    str2 = "D";
                                    str3 = "找零";
                                    num  = -1;
                                    break;
                                }
                                DataRow[] rowArray = table3.Select(string.Format(" pay_way='{0}' and sale_way='{1}' ", _info.pay_way, str2));
                                if ((rowArray != null) && (rowArray.Length > 0))
                                {
                                    int num10;
                                    if ((rowArray.Length > 0) && _info.pay_way.ToUpper().Equals("SAV"))
                                    {
                                        num10 = 0;
                                        while (num10 <= (rowArray.Length - 1))
                                        {
                                            result = Convert.ToInt32(rowArray[num10]["count"]);
                                            num5   = Convert.ToDecimal(rowArray[num10]["amount"]);
                                            if ((result > 0) || (num5 > 0M))
                                            {
                                                if (rowArray[num10]["memo"].ToString() == "1")
                                                {
                                                    list.Add(_info.pay_name + "-项目" + str3);
                                                }
                                                else
                                                {
                                                    list.Add(_info.pay_name + "-" + str3);
                                                }
                                                list.Add("--笔数: " + Gfunc.PrintStrAlign(result.ToString(), 6, TextAlign.Left) + "--金额: " + num5.ToString(Gattr.PosSaleAmtPoint));
                                                if (num == 1)
                                                {
                                                    num6 += num5 * _info.rate;
                                                    num3 += result;
                                                }
                                                else if (num == -1)
                                                {
                                                    num7 += num5 * _info.rate;
                                                    num4 += result;
                                                }
                                            }
                                            num10++;
                                        }
                                    }
                                    else
                                    {
                                        for (num10 = 0; num10 <= (rowArray.Length - 1); num10++)
                                        {
                                            result = Convert.ToInt32(rowArray[num10]["count"]);
                                            num5   = Convert.ToDecimal(rowArray[num10]["amount"]);
                                            if ((result > 0) || (num5 > 0M))
                                            {
                                                if ((rowArray[num10]["memo"].ToString() == "2") || _info.pay_way.ToUpper().Equals("ORD"))
                                                {
                                                    if (str2 == "B")
                                                    {
                                                        list.Add(string.Format("退订货订金(人民币)", new object[0]));
                                                    }
                                                    else
                                                    {
                                                        list.Add(_info.pay_name + "-储值卡充值");
                                                    }
                                                }
                                                else if (rowArray[num10]["memo"].ToString() == "3")
                                                {
                                                    list.Add(_info.pay_name + "-储值卡项目充值");
                                                }
                                                else
                                                {
                                                    list.Add(_info.pay_name + "-" + str3);
                                                }
                                                list.Add("--笔数: " + Gfunc.PrintStrAlign(result.ToString(), 6, TextAlign.Left) + "--金额: " + num5.ToString(Gattr.PosSaleAmtPoint));
                                                switch (num)
                                                {
                                                case 1:
                                                    num6 += num5 * _info.rate;
                                                    num3 += result;
                                                    break;

                                                case -1:
                                                    num7 += num5 * _info.rate;
                                                    num4 += result;
                                                    break;
                                                }
                                                if (_info.pay_way == "RMB")
                                                {
                                                    num8 += num5 * num;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if ((num3 > 0) || (num4 > 0))
                    {
                        list.Add("");
                        list.Add("收支合计  笔数: " + ((num3 + num4)).ToString() + " ");
                        if (num4 > 0)
                        {
                            list.Add(Gfunc.PrintStrAlign("--支出笔数: " + num4.ToString(), 0x10, TextAlign.Left) + "支出金额: " + num7.ToString(Gattr.PosSaleAmtPoint));
                        }
                        if (num3 > 0)
                        {
                            list.Add(Gfunc.PrintStrAlign("--收入笔数: " + num3.ToString(), 0x10, TextAlign.Left) + "收入金额: " + num6.ToString(Gattr.PosSaleAmtPoint));
                        }
                        list.Add("--合计金额: " + ((num6 - num7)).ToString(Gattr.PosSaleAmtPoint));
                        list.Add("");
                        list.Add("人民币现金额: " + num8.ToString(Gattr.PosSaleAmtPoint));
                        str = "";
                        list.Add(str.PadLeft((intPrintLen < 0) ? 0 : intPrintLen, '-'));
                    }
                }
                list.Add(Gfunc.PrintStrAlign("==完==", intPrintLen, TextAlign.Center));
                list3 = list;
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return(list3);
        }
Example #2
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);
        }