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