/// <summary> /// 查询退货账单 /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <param name="userId"></param> /// <returns></returns> private List <ReceiveBillMain> QueryBackBill(string startDate, string endDate, string userId) { List <ReceiveBillMain> previewList = new List <ReceiveBillMain>(); List <ConditionFun.SqlqueryCondition> conditionList = new List <ConditionFun.SqlqueryCondition>(); //查询总店的所有应收出货单 conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, OUT00Table.SHOP_ID, Comparison.Equals, shopId, false, false)); //退货单时间 conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.INPUT_DATE, Comparison.GreaterOrEquals, startDate, false, false)); conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.INPUT_DATE, Comparison.LessOrEquals, endDate, false, false)); //退货单状态为2=核准 conditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, OUT00Table.STATUS, Comparison.Equals, 2, false, false)); List <IN_BACK00> backList = selectHelper.Select <IN_BACK00>(true, 5000, null, 0, 5000, conditionList, new List <string>() { "SHOP_ID" }).ExecuteTypedList <IN_BACK00>(); if (backList == null || backList.Count == 0) { return(previewList); } foreach (IN_BACK00 back00 in backList) { try { //查询退货单明细 //明细查询条件 List <ConditionFun.SqlqueryCondition> itemConditionList = new List <ConditionFun.SqlqueryCondition>(); itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, "SHOP_ID", Comparison.Equals, back00.SHOP_ID, false, false)); itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, "IB_ID", Comparison.Equals, back00.IB_ID, false, false)); //执行查询 List <IN_BACK01> outItemList = selectHelper.Select <IN_BACK01>(false, 0, null, itemConditionList, new List <string>() { "SNo" }).ExecuteTypedList <IN_BACK01>(); if (outItemList == null || outItemList.Count == 0) { CommonBll.WriteLog(string.Format("出货单{0}未查询到明细", back00.IB_ID, null)); continue; } //出货价格 decimal price = 0; //出货成本 decimal cost = 0; //遍历出货单明细插入 foreach (IN_BACK01 item in outItemList) { //累加出货价 price += item.STD_PRICE; //累加成本 cost += item.COST; } ReceiveBillMain receiveMain = new ReceiveBillMain(); receiveMain.Id = back00.Id; receiveMain.BILL_TYPE = (int)BillType.BackBill; //建档时间 receiveMain.CRT_DATETIME = DateTime.Now; //建档人员 receiveMain.CRT_USER_ID = userId; //出货单日期 receiveMain.INPUT_DATE = back00.INPUT_DATE; //分店编号 receiveMain.IN_SHOP = back00.SHOP_ID; //最后修改日期 receiveMain.LAST_UPDATE = DateTime.Now; //备注 receiveMain.MEMO = back00.Memo; //修改时间 receiveMain.MOD_DATETIME = DateTime.Now; //修改人 receiveMain.MOD_USER_ID = userId; //退货单号 receiveMain.BILL_ID = back00.IB_ID; //总店编号 receiveMain.SHOP_ID = back00.OUT_SHOP; //新建存档状态 receiveMain.STATUS = 1; //出货单的建单人 receiveMain.USER_ID = back00.USER_ID; //退货总价 receiveMain.BILL_AMOUNT = price; //退货总成本 receiveMain.BILL_COST = cost; previewList.Add(receiveMain); } catch (Exception ex) { CommonBll.WriteLog(string.Format("汇整退货单{0}发生错误。", back00.IB_ID, ex)); } } return(previewList); }
/// <summary> /// 查询应收账单 /// </summary> /// <param name="startDate">开始日期</param> /// <param name="endDate">结束日期</param> /// <param name="userId"></param> /// <returns></returns> private List <ReceiveBillMain> QueryOutBill(string startDate, string endDate, string userId) { //拼接查询条件 List <ConditionFun.SqlqueryCondition> conditionList = QueryOutListCondition(shopId, startDate, endDate); //1.查询总部出货表OUT00 // 1)出货单状态为 2=核准 // 2)SHOP_ID = 当前登录用户的总部编号 // 3)在指定日期范围内 //2.遍历结果 计算成本和价格 //3.显示预览界面 List <ReceiveBillMain> previewList = new List <ReceiveBillMain>(); //1.查询满足条件的出货单 DataTable dataTable = OUT00Bll.GetInstence().GetDataTable(false, 5000, null, 0, 5000, conditionList, null); if (dataTable == null || dataTable.Rows.Count == 0) { return(previewList); } //2.遍历查询结果 foreach (DataRow row in dataTable.Rows) { try { //4.查询出货单明细 //明细查询条件 List <ConditionFun.SqlqueryCondition> itemConditionList = new List <ConditionFun.SqlqueryCondition>(); itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.Where, "SHOP_ID", Comparison.Equals, row["SHOP_ID"], false, false)); itemConditionList.Add(new ConditionFun.SqlqueryCondition(ConstraintType.And, "OUT_ID", Comparison.Equals, row["OUT_ID"], false, false)); //执行查询 List <OUT01> outItemList = selectHelper.Select <OUT01>(false, 0, null, itemConditionList, new List <string>() { "SNo" }).ExecuteTypedList <OUT01>(); if (outItemList == null || outItemList.Count == 0) { CommonBll.WriteLog(string.Format("出货单{0}未查询到明细", row["OUT_ID"]), null); continue; } //出货价格 decimal price = 0; //出货成本 decimal cost = 0; //遍历出货单明细插入 foreach (OUT01 item in outItemList) { //累加出货价 price += item.STD_PRICE; //累加成本 cost += item.COST; } ReceiveBillMain receiveMain = new ReceiveBillMain(); receiveMain.Id = Convert.ToInt32(row["Id"].ToString()); receiveMain.BILL_TYPE = (int)BillType.OutBill; //建档时间 receiveMain.CRT_DATETIME = DateTime.Now; //建档人员 receiveMain.CRT_USER_ID = userId; //出货单日期 receiveMain.INPUT_DATE = (DateTime)row["INPUT_DATE"]; //分店编号 receiveMain.IN_SHOP = row["IN_SHOP"].ToString(); //最后修改日期 receiveMain.LAST_UPDATE = DateTime.Now; //备注 receiveMain.MEMO = row["Memo"].ToString(); //修改时间 receiveMain.MOD_DATETIME = DateTime.Now; //修改人 receiveMain.MOD_USER_ID = userId; //出货单号 receiveMain.BILL_ID = row["OUT_ID"].ToString(); //总店编号 receiveMain.SHOP_ID = row["SHOP_ID"].ToString(); //新建存档状态 receiveMain.STATUS = 1; //出货单的建单人 receiveMain.USER_ID = row["USER_ID"].ToString(); //出货总价 receiveMain.BILL_AMOUNT = price; //出货总成本 receiveMain.BILL_COST = cost; previewList.Add(receiveMain); } catch (Exception ex) { CommonBll.WriteLog(string.Format("汇整出货单{0}发生错误。", row["OUT_ID"]), ex); } } return(previewList); }