void InitSourceData(ORD_SalesOrderResult orderResult) { if (orderResult != null) { txtSOGuid.Text = orderResult.SOGuid.ToStringHasNull(); txtSOBillNo.Text = orderResult.BillNo; cboCurrency.SelectedValue = orderResult.Currency; txtSODate.Text = orderResult.SODate.ToStringHasNull(); txtCustomerID.Text = orderResult.CustomerID.ToStringHasNull(); txtCustomerName.Text = orderResult.CustomerName; decimal?totalAmount = 0.0m; List <STK_OutLineResult> outLineList = outLineLogic.GetList(new STK_OutLineParam() { SourceBillGuid = orderResult.SOGuid, IsReturnOver = false }); foreach (STK_OutLineResult outLineResult in outLineList) { ORD_SalesReturnLineResult returnListResult = new ORD_SalesReturnLineResult(); SetStkLineObjectValue(returnListResult, outLineResult); totalAmount += returnListResult.Amount; bsSalesReturnLine.Add(returnListResult); } totalAmount = Math.Round(totalAmount.ToDecimal(), 3, MidpointRounding.AwayFromZero); txtAmount.Text = totalAmount.ToStringHasNull(); } }
/// <summary> /// 删除实体 /// </summary> /// <param name="param">删除条件实体</param> /// <returns></returns> public WCFAddUpdateResult DelInfo(ORD_SalesOrderParam param) { this.CheckSession(); WCFAddUpdateResult ret = new WCFAddUpdateResult(); int affect = 0; try { #region 判断 if (param.SOGuid == null) { throw new WarnException("请指定要删除的销售单ID!"); } #endregion WhereClip whereClip = GetWhereClip(param); ORD_SalesOrderResult info = new ORD_SalesOrderResult(); info.IsDeleted = true; affect = this.Update <ORD_SalesOrderResult>(info, whereClip); #region 设置返回值 ret.Key = affect; #endregion } catch (WarnException exp) { throw exp; } catch (System.Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(ret); }
public WCFAddUpdateResult AddOrUpdate(ORD_SalesOrderResult param) { WCFAddUpdateResult ret = new WCFAddUpdateResult(); ExeResult rst = new ExeResult(); rst = this.Execute("ZNLCRM.BLL.SPM.ORD_SalesOrderBLL", "AddOrUpdate", param); ret = (rst == null ? new WCFAddUpdateResult() : rst.Result as WCFAddUpdateResult); return(ret); }
private void tsbAudit_Click(object sender, EventArgs e) { //bool flag= orderLogic.AuditSalesOrderBill(new ORD_SalesOrderParam() { SOGuid = soguid }); //if (flag) // InitData(); ORD_SalesOrderResult info = Form_GetEditEntity() as ORD_SalesOrderResult; this.WF_CheckBill("ORD_SalesOrder", info.BillNo, info.SOGuid, this.DataIsChanged, delegate() { return(SaveData(false)); }, InitData); }
public ORD_SalesOrderResult GetInfo(ORD_SalesOrderParam param) { ORD_SalesOrderResult ret = new ORD_SalesOrderResult(); ExeResult rst = new ExeResult(); rst = this.Execute("ZNLCRM.BLL.SPM.ORD_SalesOrderBLL", "GetInfo", param); ret = rst == null ? new ORD_SalesOrderResult() : rst.Result as ORD_SalesOrderResult; return(ret); }
object Form_GetEditEntity() { ORD_SalesOrderResult info = new ORD_SalesOrderResult(); info.SOGuid = soguid; info = this.ConvertControlToEntity <ORD_SalesOrderResult>(this.stcpBase.Controls, info, null); info = this.ConvertControlToEntity <ORD_SalesOrderResult>(this.stcpOther.Controls, info, null); this.SetDataIsChanged <ORD_SalesOrderResult>(info); return(info); }
public bool AuditSalesOrderBill(ORD_SalesOrderParam param) { bool auditFlag = true; try { ORD_SalesOrderResult orderResult = this.GetInfo(param); if (orderResult != null) { bool isAllowAudit = true; if (orderResult.ApproveStatus == "待提交") { isAllowAudit = false; throw new WarnException("销售单当前状态为:【待提交】,请先提交!"); } else if (orderResult.ApproveStatus == "审核完成") { isAllowAudit = false; throw new WarnException("销售单当前状态为:【审核完成】,禁止重复审核!"); } if (isAllowAudit) { orderResult.Status = "Complete"; orderResult.ApproveStatus = "审核完成"; WCFAddUpdateResult ret = this.AddOrUpdate(orderResult); if (ret.KeyGuid.ToGuid() == Guid.Empty) { auditFlag = false; } } } else { throw new WarnException("要审核的销售单在系统中不存在!"); } } catch (WarnException exp) { throw exp; } catch (Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(auditFlag); }
private void txtSourceBillNo_ButtonCustomClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(cboBillType.SelectedValue.ToStringHasNull())) { DialogResult rst = DialogResult.Cancel; switch (cboBillType.SelectedValue.ToStringHasNull()) { case "SO_OUT": frmSelectSalesOrder frmSelectSalesOrder = new frmSelectSalesOrder(false); frmSelectSalesOrder.BringToFront(); frmSelectSalesOrder.StartPosition = FormStartPosition.CenterScreen; rst = frmSelectSalesOrder.ShowDialog(); if (rst == DialogResult.OK) { List <ORD_SalesOrderResult> rstList = frmSelectSalesOrder.GetSelectList <ORD_SalesOrderResult>(); if (rstList != null && rstList.Count > 0) { ORD_SalesOrderResult orderResult = rstList[0]; InitSourceData("SO_OUT", orderResult); } } break; case "POR_OUT": frmSelectPurchaseReturn frmSelectPurchaseReturn = new frmSelectPurchaseReturn(false); frmSelectPurchaseReturn.BringToFront(); frmSelectPurchaseReturn.StartPosition = FormStartPosition.CenterScreen; rst = frmSelectPurchaseReturn.ShowDialog(); if (rst == DialogResult.OK) { List <ORD_PurchaseReturnResult> rstList = frmSelectPurchaseReturn.GetSelectList <ORD_PurchaseReturnResult>(); if (rstList != null && rstList.Count > 0) { ORD_PurchaseReturnResult orderResult = rstList[0]; InitSourceData("POR_OUT", orderResult); } } break; case "ZX_OUT": break; } } else { MessageBox.Show("请选择出库类型!"); } }
private void InitData() { if (SRGuid != null) { ORD_SalesReturnResult info = returnLogic.GetInfo(new ORD_SalesReturnParam { SRGuid = SRGuid }); this.ConvertEntityToControl <ORD_SalesReturnResult>(this.stcpBase.Controls, info, null); if (info != null) { txtOperDeptName.Text = info.OperDeptName; decimal totalAmount = Math.Round(info.Amount.ToDecimal(), 3, MidpointRounding.AwayFromZero); txtAmount.Text = totalAmount.ToStringHasNull(); if (info.ReturnLineList != null) { addOrModifyList = info.ReturnLineList; } } } else { txtReturnDate.Text = DateTime.Now.Date.ToStringHasNull(); txtOperDeptID.Text = MySession.DeptID.ToStringHasNull(); txtOperDeptName.Text = MySession.DeptName; txtOperEmpID.Text = MySession.UserID.ToStringHasNull(); txtOperEmpName.Text = MySession.UserName.ToStringHasNull(); SYS_DictItemLineLogic.SetCombolSelectedIndex(this.cboOperOrgID, MySession.OrgID, true); } bsSalesReturnLine.DataSource = addOrModifyList; dgvSalesReturnLine.DataSource = bsSalesReturnLine; //CheckAuditButton("ORD_SalesOrder", SRGuid, this.tsbSubmit, null, this.tsbAudit, this.tsbUnDo); if (SRGuid == null && _SOGuid != null) { ORD_SalesOrderResult orderResult = orderLogic.GetInfo(new ORD_SalesOrderParam() { SOGuid = _SOGuid }); if (orderResult != null) { InitSourceData(orderResult); } } }
private void InitData() { if (soguid != null) { ORD_SalesOrderResult info = orderLogic.GetInfo(new ORD_SalesOrderParam { SOGuid = soguid }); this.ConvertEntityToControl <ORD_SalesOrderResult>(this.stcpBase.Controls, info, null); this.ConvertEntityToControl <ORD_SalesOrderResult>(this.stcpOther.Controls, info, null); if (info != null) { txtSalDeptName.Text = info.SalDeptName; decimal taxAmount = Math.Round(info.TaxAmount.ToDecimal(), 3, MidpointRounding.AwayFromZero); decimal totalAmount = Math.Round(info.Amount.ToDecimal(), 3, MidpointRounding.AwayFromZero); decimal commissionAmount = Math.Round(info.CommissionAmount.ToDecimal(), 3, MidpointRounding.AwayFromZero); txtAmount.Text = totalAmount.ToStringHasNull(); txtTaxAmount.Text = taxAmount.ToStringHasNull(); txtCommissionAmount.Text = commissionAmount.ToStringHasNull(); if (info.OrderLineList != null) { addOrModifyList = info.OrderLineList; } } } else { cboBillType.SelectedValue = "外贸单"; txtNeedDeliveryDate.Text = DateTime.Now.ToStringHasNull(); txtNeedRecAmtDate.Text = DateTime.Now.ToStringHasNull(); txtSODate.Text = DateTime.Now.Date.ToStringHasNull(); txtSalDeptID.Text = MySession.DeptID.ToStringHasNull(); txtSalDeptName.Text = MySession.DeptName; txtSalerID.Text = MySession.UserID.ToStringHasNull(); txtSalerName.Text = MySession.UserName.ToStringHasNull(); SYS_DictItemLineLogic.SetCombolSelectedIndex(this.cboSalOrgID, MySession.OrgID, true); } bsOrderLine.DataSource = addOrModifyList; dgvSalesOrderLine.DataSource = bsOrderLine; BindSuperGridControl(); CheckAuditButton("ORD_SalesOrder", soguid, this.tsbSubmit, null, this.tsbAudit, this.tsbUnDo); }
private void tsbDel_Click(object sender, EventArgs e) { ORD_SalesOrderParam param = new ORD_SalesOrderParam(); param.SOID = soid; ORD_SalesOrderResult rst = orderLogic.GetInfo(param); if (rst != null) { if (MessageBox.Show("请确认是否要删除销售单:【" + rst.BillNo + "】", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { WCFAddUpdateResult result = this.AsyncExecute <WCFAddUpdateResult, ORD_SalesOrderParam>(param, orderLogic.DelInfo, a => { BindDataGridView(pgSalesOrder.PageIndex); }); } } else { this.ShowMessage("请选择需要删除的销售明细!"); } }
void InitSourceData(string billType, Guid?sourceBillGuid) { switch (billType) { case "SO_OUT": ORD_SalesOrderResult orderResult = orderLogic.GetInfo(new ORD_SalesOrderParam() { SOGuid = sourceBillGuid }); InitSourceData(billType, orderResult); break; case "POR_OUT": ORD_PurchaseReturnResult returnResult = returnLogic.GetInfo(new ORD_PurchaseReturnParam() { PRGuid = sourceBillGuid }); InitSourceData(billType, returnResult); break; } }
/// <summary> /// 获取一条信息记录 /// </summary> /// <param name="param"></param> /// <returns></returns> public ORD_SalesOrderResult GetInfo(ORD_SalesOrderParam param) { this.CheckSession(); ORD_SalesOrderResult rst = new ORD_SalesOrderResult(); #region 判断 if (param.SOGuid == null) { throw new WarnException("请指定销售单GUID!"); } #endregion #region 获取实体 rst = this.Select <ORD_SalesOrderResult>(GetWhereClip(param)); if (rst != null) { string[] statusArr = new string[] { rst.NotifyStatus, rst.PurchaseStatus, rst.StkTakeStatus, rst.StkInStatus, rst.StkOutStatus, rst.ShipmentStatus, rst.ReturnStatus, rst.ReceivableStatus }; rst.AllStatus = string.Join(",", statusArr); ORD_SalesOrderLineBLL lineBLL = new ORD_SalesOrderLineBLL(); lineBLL.SessionInfo = this.SessionInfo; rst.OrderLineList = lineBLL.GetList(new ORD_SalesOrderLineParam() { SOGuid = rst.SOGuid }); //this.SelectList<ORD_SalesOrderLineResult>(ORD_SalesOrderLine._.SOGuid == rst.SOGuid); HR_DepartmentBLL deptBLL = new HR_DepartmentBLL(); deptBLL.SessionInfo = this.SessionInfo; HR_DepartmentResult deptResult = deptBLL.GetInfo(new HR_DepartmentParam() { DeptID = rst.SalDeptID }); rst.SalDeptName = deptResult.DeptName; } #endregion return(rst); }
private void txtSOBillNo_ButtonCustomClick(object sender, EventArgs e) { frmSelectSalesOrder frmSelectSalesOrder = new frmSelectSalesOrder(false); frmSelectSalesOrder.CustomerID = txtCustomerID.Text.ToInt32(); frmSelectSalesOrder.BringToFront(); frmSelectSalesOrder.StartPosition = FormStartPosition.CenterScreen; DialogResult rst = frmSelectSalesOrder.ShowDialog(); if (rst == DialogResult.OK) { List <ORD_SalesOrderResult> rstList = frmSelectSalesOrder.GetSelectList <ORD_SalesOrderResult>(); if (rstList != null && rstList.Count > 0) { bsSalesReturnLine.Clear(); tempList.Clear(); delList.Clear(); addOrModifyList.Clear(); ORD_SalesOrderResult orderResult = rstList[0]; InitSourceData(orderResult); } } }
private void tsbUnDo_Click(object sender, EventArgs e) { ORD_SalesOrderResult info = Form_GetEditEntity() as ORD_SalesOrderResult; this.WF_CancelCheckBill("ORD_SalesOrder", info.SOGuid, InitData); }
/// <summary> /// 保存,返回值如果是异步执行,返回值无效果,除非是同步执行,返回值有效 /// </summary> /// <param name="isAsyncExecute">是否异步执行</param> /// <returns></returns> private bool SaveData(bool isAsyncExecute) { bool ret = false; WCFAddUpdateResult result = new WCFAddUpdateResult(); #region 判断和获取实体 ORD_SalesOrderResult info = Form_GetEditEntity() as ORD_SalesOrderResult; if (!this.DataIsChanged && isAsyncExecute)//异步执行时判断数据是否有变化 { this.ShowNoChangedMsg(); return(ret); } bool flag = false; foreach (ORD_SalesOrderLineResult rst in addOrModifyList) { if (string.IsNullOrEmpty(rst.Model) || rst.Qty.ToInt32() <= 0) { flag = true; break; } } if (flag) { this.ShowMessage("型号或数量不能为空!"); return(ret); } #endregion #region 明细 bsOrderLine.EndEdit(); tempList.Clear(); foreach (ORD_SalesOrderLineResult rst in addOrModifyList) { if (rst.HasChanged()) { tempList.Add(rst); } } //tempList.AddRange(addOrModifyList); tempList.AddRange(delList); info.OrderLineList = tempList; #endregion #region 异步执行,点击保存铵钮时 if (isAsyncExecute) { #region 异步执行保存操作 result = this.AsyncExecute <WCFAddUpdateResult, ORD_SalesOrderResult>(info, orderLogic.AddOrUpdate, (a) => { if (a.KeyGuid.ToGuid() != Guid.Empty) { soid = a.Key; soguid = a.KeyGuid.ToGuid(); sourcebillno = a.BillNo; CRM_CompanyResult companyResult = companyLogic.GetCustInfo(new CRM_CompanyParam() { CompanyID = txtCustomerID.Text.ToInt32() }); if (companyResult != null) { companyResult.LastBusinessDate = txtSODate.Text.ToDateTime(); companyLogic.AddOrUpdateCust(companyResult); } if (SaveAttach != null) { SaveAttach("ORD_SalesOrder", soguid.ToGuid(), sourcebillno); } InitData(); delList.Clear(); } }); #endregion } #endregion #region 非异步执 else { result = orderLogic.AddOrUpdate(info); if (result.KeyGuid.ToGuid() != Guid.Empty) { ret = true; } } return(ret); #endregion }
public void InitSourceData(string billType, object obj) { if (obj != null) { if (cboBillType.SelectedValue.ToStringHasNull() == "") { SYS_DictItemLineLogic.SetCombolSelectedIndex(cboBillType, billType, true); } if (obj is ORD_SalesOrderResult) { ORD_SalesOrderResult salesOrderResult = obj as ORD_SalesOrderResult; if (salesOrderResult != null) { txtSourceBillGuid.Text = salesOrderResult.SOGuid.ToStringHasNull(); txtSourceBillNo.Text = salesOrderResult.BillNo; cboTaxRate.SelectedValue = salesOrderResult.TaxRate == null ? 0 : salesOrderResult.TaxRate; cboCurrency.SelectedValue = salesOrderResult.Currency; List <STK_StockReserveResult> reserveList = reserveLogic.GetList(new STK_StockReserveParam() { SourceBillGuid = salesOrderResult.SOGuid, IsUsedOver = false }); List <ORD_SalesOrderLineResult> lineList = null; if (salesOrderResult.OrderLineList != null)//从其他窗体点击出库进入,只传递guid,通过guid获取的对象中含有明细 { lineList = salesOrderResult.OrderLineList.Where(a => a.StkOutOccQty.ToInt32() < a.Qty).ToList(); } else//在出库窗体打开选择窗体得到的对象是没有包含明细的,需要去单独获取明细 { lineList = orderLineLogic.GetList(new ORD_SalesOrderLineParam() { SOGuid = salesOrderResult.SOGuid }).Where(a => a.StkOutOccQty.ToInt32() < a.Qty).ToList(); } foreach (STK_StockReserveResult reserveResult in reserveList) { STK_OutLineResult stkOutLineResult = new STK_OutLineResult(); ORD_SalesOrderLineResult lineResult = lineList.FirstOrDefault(a => a.SOLineGuid == reserveResult.SourceBillLineGuid); if (lineResult != null) { stkOutLineResult.UnitPrice = lineResult.UnitPrice; } SetStkLineObjectValue(stkOutLineResult, reserveResult); bsStkOutLine.Add(stkOutLineResult); } } } else if (obj is ORD_PurchaseReturnResult) { ORD_PurchaseReturnResult purReturnResult = obj as ORD_PurchaseReturnResult; if (purReturnResult != null) { txtSourceBillGuid.Text = purReturnResult.POGuid.ToStringHasNull(); txtSourceBillNo.Text = purReturnResult.BillNo; decimal?taxRate = 0; cboTaxRate.SelectedValue = taxRate; cboCurrency.SelectedValue = purReturnResult.Currency; List <STK_StockReserveResult> reserveList = reserveLogic.GetList(new STK_StockReserveParam() { SourceBillGuid = purReturnResult.PRGuid, IsUsedOver = false }); List <ORD_PurchaseReturnLineResult> lineList = null; if (purReturnResult.ReturnLineList != null) { lineList = purReturnResult.ReturnLineList.Where(a => a.StkOutOccQty.ToInt32() < a.Qty).ToList(); } else { lineList = returnLineLogic.GetList(new ORD_PurchaseReturnLineParam() { PRGuid = purReturnResult.PRGuid }).Where(a => a.StkOutOccQty.ToInt32() < a.Qty).ToList(); } foreach (STK_StockReserveResult reserveResult in reserveList) { STK_OutLineResult stkOutLineResult = new STK_OutLineResult(); ORD_PurchaseReturnLineResult lineResult = lineList.FirstOrDefault(a => a.PRLineGuid == reserveResult.SourceBillLineGuid); if (lineResult != null) { stkOutLineResult.UnitPrice = lineResult.UnitPrice; } SetStkLineObjectValue(stkOutLineResult, reserveResult); bsStkOutLine.Add(stkOutLineResult); } } } CalcExchangeRate(); } }
public bool SubmitSalesOrderBill(ORD_SalesOrderParam param) { this.CheckSession(); bool submitFlag = true; try { ORD_SalesOrderResult orderResult = this.GetInfo(param); if (orderResult != null) { #region 判断是否可以提交 bool isAllowSubmit = true; if (orderResult.ApproveStatus == "待审核") { isAllowSubmit = false; throw new WarnException("销售单当前状态为:【已提交,待审核】,禁止重复提交!"); } else if (orderResult.ApproveStatus == "审核完成") { isAllowSubmit = false; throw new WarnException("销售单当前状态为:【审核完成】,撤单后才可以再次提交!"); } if (isAllowSubmit) { orderResult.Status = "Approve"; orderResult.ApproveStatus = "待审核"; WCFAddUpdateResult ret = this.AddOrUpdate(orderResult); if (ret.KeyGuid.ToGuid() == Guid.Empty) { submitFlag = false; } else { //STK_InLineBLL inLineBLL=new STK_InLineBLL (); //inLineBLL.SessionInfo=this.SessionInfo; //List<ORD_SalesOrderLineResult> salesOrderLineList = orderResult.OrderLineList; //if(salesOrderLineList!=null && salesOrderLineList.Count>0 && orderResult.BillType=="现货单") //{ // Guid?[] _ItemCodes=salesOrderLineList.Where(a=>a.ItemCode!=null).Select(a=>a.ItemCode).Distinct().ToArray(); // List<STK_InLineResult> inLineResultList = inLineBLL.GetList(new STK_InLineParam() { ItemCodes = _ItemCodes }); // #region 预留库存 // foreach (ORD_SalesOrderLineResult orderLineResult in salesOrderLineList) // { // if (orderLineResult.ItemCode != null) // { // } // } // #endregion //} } } #endregion } else { throw new WarnException("要提交的销售单在系统中不存在!"); } } catch (WarnException exp) { throw exp; } catch (Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(submitFlag); }
/// <summary> /// 添加和新增修改 /// </summary> /// <param name="param">新增或修改的实体</param> /// <returns></returns> public WCFAddUpdateResult AddOrUpdate(ORD_SalesOrderResult param) { this.CheckSession(); WCFAddUpdateResult ret = new WCFAddUpdateResult(); try { int affect = 0; #region 判断 if (string.IsNullOrEmpty(param.BillType)) { throw new WarnException("请指定单据类型!"); } if (string.IsNullOrEmpty(param.CustomerName.Trim())) { throw new WarnException("请指定公司名称!"); } if (string.IsNullOrEmpty(param.SalerName)) { throw new WarnException("请选择销售员!"); } if (string.IsNullOrEmpty(param.Currency)) { throw new WarnException("请选择币种!"); } if (string.IsNullOrEmpty(param.ClearingForm)) { throw new WarnException("请填写结算方式!"); } if (param.OrderLineList == null) { throw new WarnException("请填写销售明细!"); } string msg = string.Empty; foreach (ORD_SalesOrderLineResult rst in param.OrderLineList) { if (string.IsNullOrEmpty(rst.Model)) { msg = "请填写销售明细的型号!"; break; } if (rst.Qty <= 0) { msg = "请填写销售明细的数量!"; break; } } #endregion List <ORD_SalesOrderLineResult> orderLineList = param.OrderLineList; #region 系统默认值 if (param.SOGuid != null) { WhereClip where = ORD_SalesOrder._.SOGuid == param.SOGuid; param.UpdatedEmpID = this.SessionInfo.UserID; param.UpdatedEmpName = this.SessionInfo.UserName; param.UpdatedTime = DateTime.Now; affect = this.Update <ORD_SalesOrderResult>(param, where); } else { param.SOGuid = Guid.NewGuid(); Sys_CodeRulerBLL codeRulerBll = new Sys_CodeRulerBLL(); codeRulerBll.SessionInfo = this.SessionInfo; param.BillNo = param.BillNo = codeRulerBll.GetBillNo(new Entity.UserModel.Sys.SYS_CredentialCodeRuleParam() { BillDate = DateTime.Today, TableName = "ORD_SalesOrder" }); param.GCompanyID = this.SessionInfo.CompanyID; param.NotifyStatus = "待通知"; param.PurchaseStatus = "待采购"; param.StkInStatus = "待入库"; param.StkOutOccStatus = "待占有"; param.StkOutStatus = "待出库"; param.ShipmentStatus = "待发运"; param.ReturnOccStatus = "待占有"; param.ReturnStatus = "待退货"; param.ReceivableStatus = "待收款"; param.Status = "New"; param.ApproveStatus = "待提交"; param.IsDeleted = false; param.IsCancel = false; param.CreatedEmpID = this.SessionInfo.UserID; param.CreatedEmpName = this.SessionInfo.UserName; param.CreatedTime = DateTime.Now; affect = this.Insert <ORD_SalesOrderResult>(param); param = this.Select <ORD_SalesOrderResult>(new List <Field>() { ORD_SalesOrder._.All }, ORD_SalesOrder._.SOGuid == param.SOGuid); } foreach (ORD_SalesOrderLineResult rst in orderLineList) { if (rst.SOLineGuid.ToGuid() == Guid.Empty) { rst.SOLineGuid = Guid.NewGuid(); rst.SOGuid = param.SOGuid; rst.GCompanyID = this.SessionInfo.CompanyID; rst.CreatedEmpID = this.SessionInfo.UserID; rst.CreatedEmpName = this.SessionInfo.UserName; rst.CreatedTime = DateTime.Now; rst.SOLineCode = param.CreatedTime.ToDateTime().ToString("yyyyMMddHHmmssms") + new Random().Next(1000, 9999); rst.IsDeleted = false; rst.IsCancel = false; } else { rst.UpdatedEmpID = this.SessionInfo.UserID; rst.UpdatedEmpName = this.SessionInfo.UserName; rst.UpdatedTime = DateTime.Now; } } this.BatchInsertOrUpdate <ORD_SalesOrderLineResult>(orderLineList); this.BatchExecute(); #region 设置返回值 ret.Key = param.SOID; ret.KeyGuid = param.SOGuid; ret.CreatedTime = param.CreatedTime; ret.CreatedEmpID = param.CreatedEmpID; ret.CreatedEmpName = param.CreatedEmpName; ret.UpdatedEmpID = param.UpdatedEmpID; ret.UpdatedEmpName = param.UpdatedEmpName; ret.UpdatedTime = param.UpdatedTime; #endregion #endregion } catch (WarnException exp) { throw exp; } catch (System.Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(ret); }
/// <summary> /// 分页集合 /// </summary> /// <param name="param"></param> /// <returns></returns> public PageList <STK_StockReserveResult> GetPageList(STK_StockReserveParam param) { this.CheckSession(); PageList <STK_StockReserveResult> ret = new PageList <STK_StockReserveResult>(); try { #region 处理销售明细 WhereClip orderClip = ORD_SalesOrder._.IsDeleted == 0; if (!string.IsNullOrEmpty(param.SourceBillNo)) { orderClip = orderClip && ORD_SalesOrder._.BillNo.Like(param.SourceBillNo + "%"); } if (param.SourceBillGuid != null) { orderClip = orderClip && ORD_SalesOrder._.SOGuid == param.SourceBillGuid; } PageList <ORD_SalesOrderResult> orderList = this.SelectList <ORD_SalesOrderResult>(1, 5000, new List <Field>() { Field.All }, orderClip, ORD_SalesOrder._.CreatedTime.Desc); PageList <ORD_SalesOrderLineResult> lineList = null; Guid?[] SOGuids = null; if (orderList.ResultList != null && orderList.ResultList.Count > 0) { SOGuids = orderList.ResultList.Select(a => a.SOGuid).Distinct().ToArray(); } WhereClip lineClip = ORD_SalesOrderLine._.IsDeleted == 0; if (SOGuids != null) { lineClip = lineClip && ORD_SalesOrderLine._.SOGuid.In(SOGuids); } if (!string.IsNullOrEmpty(param.Model)) { lineClip = lineClip && ORD_SalesOrderLine._.Model.Like(param.Model + "%"); } if (!string.IsNullOrEmpty(param.SourceBillLineCode)) { lineClip = lineClip && ORD_SalesOrderLine._.SOLineCode.Like(param.SourceBillLineCode + "%"); } lineList = this.SelectList <ORD_SalesOrderLineResult>(param.PageIndex.GetValueOrDefault(1), param.PageSize.GetValueOrDefault(100), new List <Field>() { Field.All }, lineClip, ORD_SalesOrderLine._.CreatedTime.Desc); if (lineList != null && lineList.ResultList.Count > 0) { #region 获取业务明细下的预留信息 Guid?[] SOLineGuids = lineList.ResultList.Select(a => (Guid?)a.SOLineGuid).Distinct().ToArray(); STK_StockReserveParam reserveParam = new STK_StockReserveParam(); reserveParam.SourceBillLineGuids = SOLineGuids; List <STK_StockReserveResult> childReserveResultList = this.GetList(reserveParam); #endregion List <STK_StockReserveResult> reserveResultList = new List <STK_StockReserveResult> (); STK_StockReserveResult reserveResult = null; foreach (ORD_SalesOrderLineResult lineResult in lineList.ResultList) { reserveResult = new STK_StockReserveResult(); ORD_SalesOrderResult orderResult = orderList.ResultList.FirstOrDefault(a => a.SOGuid == lineResult.SOGuid); if (orderResult != null) { reserveResult.SourceBillNo = orderResult.BillNo; reserveResult.SourceBillType = "销售出库"; reserveResult.BelongEmpName = orderResult.SalerName; reserveResult.SourceBillDate = orderResult.SODate; } reserveResult.SourceBillGuid = lineResult.SOGuid; reserveResult.SourceBillLineGuid = lineResult.SOLineGuid; reserveResult.SourceBillLineCode = lineResult.SOLineCode; reserveResult.Model = lineResult.Model; reserveResult.Brand = lineResult.Brand; reserveResult.Qty = lineResult.Qty; reserveResult.ReserveQty = lineResult.ReserveQty; reserveResult.CreatedEmpName = lineResult.CreatedEmpName; reserveResult.CreatedTime = lineResult.CreatedTime; reserveResult.UpdatedEmpName = lineResult.UpdatedEmpName; reserveResult.UpdatedTime = lineResult.UpdatedTime; if (childReserveResultList != null && childReserveResultList.Count > 0) { List <STK_StockReserveResult> srList = childReserveResultList.Where(a => a.SourceBillLineGuid == lineResult.SOLineGuid).ToList(); if (srList != null && srList.Count > 0) { Guid?[] ItemCodes = srList.Select(a => a.ItemCode).Distinct().ToArray(); STK_StockBLL stockBLL = new STK_StockBLL(); stockBLL.SessionInfo = this.SessionInfo; List <STK_StockResult> stockList = stockBLL.GetList(new STK_StockParam() { ItemCodes = ItemCodes }); foreach (STK_StockReserveResult sr in srList) { if (stockList != null && stockList.Count > 0) { STK_StockResult stockResult = stockList.FirstOrDefault(a => a.ItemCode == sr.ItemCode); sr.Model = stockResult.Model; sr.Brand = stockResult.Brand; sr.Batch = stockResult.Batch; sr.Package = stockResult.Package; sr.Quality = stockResult.Quality; sr.MPQ = stockResult.MPQ; sr.MarkCode = stockResult.MarkCode; sr.Warehouse = stockResult.Warehouse; sr.Location = stockResult.Location; sr.InvType = stockResult.InvType; sr.InBatchNo = stockResult.InBatchNo; } } reserveResult.ReserveList = srList; } } reserveResultList.Add(reserveResult); } if (ret.ResultList == null) { ret.ResultList = new List <STK_StockReserveResult>(); } ret.ResultList.AddRange(reserveResultList); ret.TotalCount = lineList.TotalCount; } #endregion #region 处理采购退货明细 #endregion } catch (WarnException exp) { throw exp; } catch (System.Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(ret); }
public bool UpdateStatus(ORD_SalesOrderParam param) { bool flag = true; try { ORD_SalesOrderResult orderResult = this.GetInfo(param); if (orderResult != null) { if (orderResult.OrderLineList != null && orderResult.OrderLineList.Count > 0) { //取消的明细需要排除 List <ORD_SalesOrderLineResult> lineList = orderResult.OrderLineList.Where(a => a.IsCancel == false).ToList(); if (lineList != null && lineList.Count > 0) { int?qty = lineList.Where(a => a.Qty != null).Select(a => a.Qty).Sum(); int?notifyQty = lineList.Where(a => a.NotifyQty != null).Select(a => a.NotifyQty).Sum(); int?purchaseQty = lineList.Where(a => a.PurchaseQty != null).Select(a => a.PurchaseQty).Sum(); int?stkInQty = lineList.Where(a => a.StkInQty != null).Select(a => a.StkInQty).Sum(); int?stkOutOccQty = lineList.Where(a => a.StkOutOccQty != null).Select(a => a.StkOutOccQty).Sum(); int?stkOutQty = lineList.Where(a => a.StkOutQty != null).Select(a => a.StkOutQty).Sum(); int?returnOccQty = lineList.Where(a => a.ReturnOccQty != null).Select(a => a.ReturnOccQty).Sum(); int?returnQty = lineList.Where(a => a.ReturnQty != null).Select(a => a.ReturnQty).Sum(); if (notifyQty == 0) { orderResult.NotifyStatus = "待通知"; } else if (notifyQty >= qty) { orderResult.NotifyStatus = "全部通知"; } else { orderResult.NotifyStatus = "部分通知"; } if (purchaseQty == 0) { orderResult.PurchaseStatus = "待采购"; } else if (purchaseQty >= qty) { orderResult.PurchaseStatus = "全部采购"; } else { orderResult.PurchaseStatus = "部分采购"; } if (stkInQty == 0) { orderResult.StkInStatus = "待入库"; } else if (stkInQty >= qty) { orderResult.StkInStatus = "全部入库"; } else { orderResult.StkInStatus = "部分入库"; } if (stkOutOccQty == 0) { orderResult.StkOutOccStatus = "待占有"; } else if (stkOutOccQty >= qty) { orderResult.StkOutOccStatus = "全部占有"; } else { orderResult.StkOutOccStatus = " 部分占有"; } if (stkOutQty == 0) { orderResult.StkOutStatus = "待出库"; } else if (stkOutQty >= qty) { orderResult.StkOutStatus = "全部出库"; } else { orderResult.StkOutStatus = " 部分出库"; } if (returnOccQty == 0) { orderResult.ReturnOccStatus = "待占有"; } else if (returnOccQty >= qty) { orderResult.ReturnOccStatus = "全部占有"; } else { orderResult.ReturnOccStatus = " 部分占有"; } if (returnQty == 0) { orderResult.ReturnStatus = "待退货"; } else if (returnQty >= qty) { orderResult.ReturnStatus = "全部退货"; } else { orderResult.ReturnStatus = " 部分退货"; } this.AddOrUpdate(orderResult); } } } } catch (WarnException exp) { flag = false; throw exp; } catch (System.Exception exp) { flag = false; LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(flag); }
private void dgvSalesOrder_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex > -1 && e.ColumnIndex > -1) { Guid?_SOGuid = dgvSalesOrder["colSOGuid", e.RowIndex].Value.ToGuid(); if (dgvSalesOrder.Columns[e.ColumnIndex].Name == "colOperOut") { ORD_SalesOrderResult orderResult = orderLogic.GetInfo(new ORD_SalesOrderParam() { SOGuid = soguid }); if (orderResult != null && orderResult.Status == "Complete" && orderResult.StkOutStatus != "全部出库" && orderResult.StkOutOccStatus != "全部占有")//没有全部出库的销售单才能创建出库单 { List <ORD_SalesOrderLineResult> lineList = orderResult.OrderLineList; if (lineList != null && lineList.Count > 0) { //判断是否存在有未取消的,出库数量小于下单数量 List <ORD_SalesOrderLineResult> effLineList = lineList.Where(a => a.IsCancel == false && a.StkOutOccQty < a.Qty).ToList(); if (effLineList != null && effLineList.Count > 0) { //如果存在未提交的关联的出库单,则直接调出出库单 STK_OutResult outResult = outLogic.GetInfo(new STK_OutParam() { SourceBillGuid = soguid, Status = "New" }); frmStkOut frmStkOut = new STK.frmStkOut("SO_OUT", _SOGuid); frmStkOut.BringToFront(); frmStkOut.StartPosition = FormStartPosition.CenterParent; if (frmStkOut != null) { //存在关联的未提交的出库单 frmStkOut.StkOutGuid = outResult.StkOutGuid; } frmStkOut.ShowDialog(); } else { this.ShowMessage("当前销售单没有需出库的销售明细!若存在有关联的已提交未审核的出库单,请及时联系相关人员审核!"); } } } else { this.ShowMessage("未审核或者全部出库占有的销售单据不允许再继续出库!"); } } if (dgvSalesOrder.Columns[e.ColumnIndex].Name == "colOperReturn") { ORD_SalesOrderResult orderResult = orderLogic.GetInfo(new ORD_SalesOrderParam() { SOGuid = _SOGuid }); if (orderResult != null && orderResult.Status == "Complete" && orderResult.StkOutOccStatus != "待出库" && orderResult.ReturnOccStatus != "全部占有")//没有全部退货的销售单才能创建退货单 { List <ORD_SalesOrderLineResult> lineList = orderResult.OrderLineList; if (lineList != null && lineList.Count > 0) { //判断是否存在有未取消的,出库数量大于0,且出库数量大于退货占有数量的销售明细 List <ORD_SalesOrderLineResult> effLineList = lineList.Where(a => a.IsCancel == false && a.StkOutQty > 0 && a.StkOutQty > a.ReturnOccQty.ToInt32()).ToList(); if (effLineList != null && effLineList.Count > 0) { //如果存在未提交的关联的退货单,则直接调出退货单 List <ORD_SalesReturnResult> returnResultList = returnLogic.GetList(new ORD_SalesReturnParam() { SOGuid = _SOGuid, Status = "New" }); frmSalesReturn frmSalesReturn = new frmSalesReturn(_SOGuid); frmSalesReturn.BringToFront(); frmSalesReturn.StartPosition = FormStartPosition.CenterParent; if (returnResultList != null && returnResultList.Count > 0) { //存在关联的未提交的退货单 frmSalesReturn.SRGuid = returnResultList[0].SRGuid; } frmSalesReturn.ShowDialog(); } else { this.ShowMessage("当前销售单没有需退货的销售明细!若存在有关联的已提交未审核的退货单,请及时联系相关人员审核!"); } } } else { this.ShowMessage("未审核或者未出库或者全部退货占有的销售单据不允许退货!"); } } } }
public PageList <ORD_PurchaseNoticeResult> GetPageList(ORD_PurchaseNoticeParam param) { PageList <ORD_PurchaseNoticeResult> ret = new PageList <ORD_PurchaseNoticeResult>(); try { ORD_SalesOrderBLL orderBLL = new ORD_SalesOrderBLL(); orderBLL.SessionInfo = this.SessionInfo; ORD_SalesOrderParam orderParam = new ORD_SalesOrderParam() { BillNo = param.SOBillNo, SalerName = param.SalerName, PageIndex = 1, PageSize = 5000 }; PageList <ORD_SalesOrderResult> orderList = orderBLL.GetPageList(orderParam); if (orderList.ResultList != null && orderList.ResultList.Count > 0) { Guid?[] SOGuids = orderList.ResultList.Select(a => a.SOGuid).Distinct().ToArray(); ORD_SalesOrderLineBLL lineBLL = new ORD_SalesOrderLineBLL(); lineBLL.SessionInfo = this.SessionInfo; ORD_SalesOrderLineParam lineParam = new ORD_SalesOrderLineParam() { Model = param.Model, SOLineCode = param.SOLineCode, SOGuids = SOGuids, PageIndex = 1, PageSize = 5000, IsCancel = false }; PageList <ORD_SalesOrderLineResult> lineList = lineBLL.GetPageList(lineParam); if (lineList.ResultList != null && lineList.ResultList.Count > 0) { Guid?[] SOLineGuIds = lineList.ResultList.Select(a => (Guid?)a.SOLineGuid).Distinct().ToArray(); param.SOLineGuids = SOLineGuIds; ret = this.SelectList <ORD_PurchaseNoticeResult>(param.PageIndex.GetValueOrDefault(1), param.PageSize.GetValueOrDefault(50), new List <Field>() { Field.All }, GetWhereClip(param), ORD_PurchaseNotice._.CreatedTime.Desc); foreach (ORD_PurchaseNoticeResult noticeResult in ret.ResultList) { ORD_SalesOrderResult orderResult = orderList.ResultList.FirstOrDefault(a => a.SOGuid == noticeResult.SOGuid); if (orderResult != null) { noticeResult.SOBillNo = orderResult.BillNo; noticeResult.SalerName = orderResult.SalerName; noticeResult.SaleCurrency = orderResult.Currency; } ORD_SalesOrderLineResult lineResult = lineList.ResultList.FirstOrDefault(a => a.SOLineGuid == noticeResult.SOLineGuid); if (lineResult != null) { noticeResult.SOLineCode = lineResult.SOLineCode; noticeResult.SalePrice = lineResult.UnitPrice; noticeResult.Unit = lineResult.Unit; noticeResult.Model = lineResult.Model; noticeResult.Brand = lineResult.Brand; noticeResult.Batch = lineResult.Batch; noticeResult.Package = lineResult.Package; noticeResult.InvType = lineResult.InvType; noticeResult.NeedDeliveryDate = lineResult.NeedDeliveryDate; noticeResult.SaleQty = lineResult.Qty; } if (noticeResult.PurchaseQty.ToInt32() == 0) { noticeResult.PurStatus = "未采购"; } else if (noticeResult.NoticeQty.ToInt32() <= noticeResult.PurchaseQty.ToInt32()) { noticeResult.PurStatus = "采购完成"; } else { noticeResult.PurStatus = "部分采购"; } } } } } catch (WarnException exp) { throw exp; } catch (System.Exception exp) { LogInfoBLL.WriteLog(this.SessionInfo, exp); throw exp; } return(ret); }