/// <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); }
/// <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); }