Example #1
0
        /// <summary>
        /// 更新订单状态
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int BillState_Change(string state, AsnBodyEntity entity)
        {
            string  sql = "UPDATE wm_asn_header wah SET wah.BILL_STATE = '{0}',wah.LAST_UPDATETIME=NOW(),wah.CLOSE_DATE =NOW() WHERE wah.BILL_ID = {1}";
            IMapper map = DatabaseInstance.Instance();

            return(map.Execute(String.Format(sql, state, entity.BillID)));
        }
Example #2
0
        private void DoEditOne()
        {
            if (ucGridPanel.FocusedRowCount == 0)
            {
                MsgBox.Warn("请选中要编辑的行。");
                return;
            }

            if (ucGridPanel.FocusedRowCount > 1)
            {
                MsgBox.Warn("不支持多行操作,请选择其中一行。");
                return;
            }

            AsnBodyEntity focusedHeader = ucGridPanel.FocusedHeader;

            if (focusedHeader.BillState != BillStateConst.ASN_STATE_CODE_NOT_ARRIVE)
            {
                MsgBox.Warn(string.Format("单据“{0}”不允许编辑,只有状态为“{1}”的单据才能编辑。",
                                          focusedHeader.BillID, BillStateConst.ASN_STATE_DESC_NOT_ARRIVE));
                return;
            }

            //FrmAsnEdit frmEditBill = new FrmAsnEdit(focusedHeader, false);
            //frmEditBill.MdiParent = this.MdiParent;
            //frmEditBill.Show();
        }
Example #3
0
        public FrmAsnEditRemark(AsnBodyEntity asnHeader)
        {
            InitializeComponent();

            this.asnHeader = asnHeader;
            this.Text      = string.Format("编辑备注(单号:{0})", asnHeader.BillID);
        }
Example #4
0
        private void Save()
        {
            AsnBodyEntity asnEntity = gvHeader.GetRow(gvHeader.FocusedRowHandle) as AsnBodyEntity;
            int           setQty    = 0;

            if (gvDetails.RowCount == 0)
            {
                return;
            }
            string lcCode = GetTempZone(GlobeSettings.LoginedUser.WarehouseCode);

            if (String.IsNullOrEmpty(lcCode))
            {
                MsgBox.Warn("请先设置越库收货区!");
                return;
            }
            foreach (PODetailEntity entity in this.listDetail)
            {
                if (entity.PutQty < 0)
                {
                    MsgBox.Warn("越库数量不能小于‘0’!");
                    entity.PutQty = 0;
                    this.gvDetails.RefreshData();
                    return;
                }
                if (entity.PutQty > entity.PlanQty)
                {
                    MsgBox.Warn("越库数量不能大于订单计划量!");
                    entity.PutQty = 0;
                    this.gvDetails.RefreshData();
                    return;
                }
                if (entity.PutQty == 0)
                {
                    setQty++;
                }
            }
            if (setQty == gvDetails.RowCount)
            {
                MsgBox.Warn("请把越库数量全部设置完成之后再确认入库!");
                this.gvDetails.RefreshData();
                return;
            }
            if (MsgBox.AskOK("确定要越库收货吗?") != DialogResult.OK)
            {
                return;
            }
            foreach (PODetailEntity entity in this.listDetail)
            {
                bool result = SaveOverStock(entity, GlobeSettings.LoginedUser.UserName);
                //LogDal.Insert(ELogType.越库, GlobeSettings.LoginedUser.UserName, ConvertUtil.ToString(entity.BillID), JsonConvert.SerializeObject(entity), "越库收货");
            }
            BillState_Change("23", asnEntity);
            ReloadAsn();
            gdDetails.DataSource  = null;
            gvDetails.ViewCaption = String.Empty;
        }
Example #5
0
        private void OnHeaderRowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            AsnBodyEntity header = gvHeader.GetRow(e.RowHandle) as AsnBodyEntity;

            if (header != null && header.RowForeColor != null)
            {
                e.Appearance.ForeColor = Color.FromArgb(header.RowForeColor.Value);
            }
        }
Example #6
0
        void ShowFocusedDetail()
        {
            AsnBodyEntity asn = FocusedHeader;

            if (asn != null && asn.Details == null)
            {
                asn.Details = asnQueryDal.GetDetailByBillID(asn.BillID);
                gvHeader.RefreshData();
            }
        }
Example #7
0
        public AsnBodyEntity GetBillState(int billID)
        {
            AsnBodyEntity tm = new AsnBodyEntity();

            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("billId=").Append(billID);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_GetBillState);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    //MsgBox.Warn(WebWork.RESULT_NULL);
                    LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(tm);
                }
                #endregion

                #region 正常错误处理

                JsonGetBillState bill = JsonConvert.DeserializeObject <JsonGetBillState>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(tm);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(tm);
                }
                #endregion
                List <AsnBodyEntity> list = new List <AsnBodyEntity>();
                #region 赋值数据
                foreach (JsonGetBillStateResult jbr in bill.result)
                {
                    AsnBodyEntity asnEntity = new AsnBodyEntity();
                    asnEntity.RowForeColor  = Convert.ToInt32(jbr.RowColor);
                    asnEntity.BillState     = jbr.BillState;
                    asnEntity.BillStateDesc = jbr.BillStateDesc;
                    asnEntity.Remark        = jbr.Remark;
                    list.Add(asnEntity);
                }
                if (list.Count > 0)
                {
                    return(list[0]);
                }
                #endregion
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
            return(tm);
        }
Example #8
0
        /// <summary>
        /// 取消验收
        /// </summary>
        /// <param name="focusedHeaders"></param>
        public void CancelCheck(List <AsnBodyEntity> focusedHeaders)
        {
            if (GetFocusedRowCount(focusedHeaders) == 0)
            {
                MsgBox.Warn("请选中要取消验收的行。");
                return;
            }

            //先从界面上判断一下,减少网络交互和数据库负载
            foreach (AsnBodyEntity header in focusedHeaders)
            {
                if (header.BillState != BillStateConst.PO_STATE_CODE_FIRST_APPROVED)
                {
                    MsgBox.Warn(string.Format("单据“{0}”的状态不允许取消验收,必须是正在验收但是实际验收数量为0的单据。", header.BillID));
                    return;
                }
            }

            if (MsgBox.AskOK(string.Format("您选择了“{0}”张单据“{1}”,确认要取消验收吗?",
                                           GetFocusedRowCount(focusedHeaders), GetFocusedBillIDs(focusedHeaders))) != DialogResult.OK)
            {
                return;
            }

            try
            {
                AsnBodyEntity errHeader = null;
                //string result = asnDal.CancelCheck(focusedHeaders, GlobeSettings.LoginedUser.UserName, GlobeSettings.LoginedUser.UserCode, out errHeader);
                //switch (result)
                //{
                //    case "1":
                //        //成功,刷新界面即可,不再提示
                //        ReloadStateDesc(focusedHeaders);
                //        break;
                //    case "-1":
                //        MsgBox.Warn(string.Format("单据“{0}”操作失败,单据不存在。", errHeader.BillID));
                //        break;
                //    case "-2":
                //        MsgBox.Warn(string.Format("单据“{0}”反审失败,必须是“已审批(一审)通过”的单据才允许反审。", errHeader.BillID));
                //        break;
                //    case "-3":
                //        MsgBox.Warn(string.Format("单据“{0}”反审失败,审批人不是“您本人”,无法反审。", errHeader.BillID));
                //        break;
                //    case "-4":
                //        MsgBox.Warn(string.Format("更新单据“{0}”状态时失败,请稍后重试。", errHeader.BillID));
                //        break;
                //}
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
Example #9
0
 private XtraReport GetRepDetail(AsnBodyEntity header, XtraReport repAsn, int tag)
 {
     if (header.BillType == "3")
     {
         repAsn = new RepAsnTransfer(header.BillID, 1);
     }
     else
     {
         repAsn = new RepAsn(header.BillID, 1, tag);
     }
     return(repAsn);
 }
Example #10
0
        /// <summary>
        /// 删除选中的单据
        /// </summary>
        /// <param name="focusedHeaders"></param>
        public void DeleteSelectedBill(List <AsnBodyEntity> focusedHeaders)
        {
            if (GetFocusedRowCount(focusedHeaders) == 0)
            {
                MsgBox.Warn("请选中要删除的行。");
                return;
            }

            //先从界面上判断一下,减少网络交互和数据库负载
            foreach (AsnBodyEntity header in focusedHeaders)
            {
                if (header.BillState != BillStateConst.ASN_STATE_CODE_NOT_ARRIVE)
                {
                    MsgBox.Warn(string.Format("单据“{0}”无法删除,只有状态为“{1}”的单据才能删除。", header.BillID, BillStateConst.ASN_STATE_DESC_NOT_ARRIVE));
                    return;
                }
            }

            if (MsgBox.AskOK(string.Format("您选择了“{0}”张单据“{1}”,确认要删除吗?",
                                           GetFocusedRowCount(focusedHeaders), GetFocusedBillIDs(focusedHeaders))) != DialogResult.OK)
            {
                return;
            }

            try
            {
                AsnBodyEntity errHeader = null;
                //string result = asnDal.Delete(focusedHeaders, GlobeSettings.LoginedUser.UserName, out errHeader);
                //switch (result)
                //{
                //    case "1":
                //        //成功,刷新界面即可,不再提示
                //        iasn.ReloadAsn();
                //        break;
                //    case "-1":
                //        MsgBox.Warn(string.Format("删除失败,单据“{0}”不存在。", errHeader.BillID));
                //        break;
                //    case "-2":
                //        MsgBox.Warn(string.Format("单据“{0}”的状态不是“{1}”,无法删除。", errHeader.BillID, BillStateConst.ASN_STATE_DESC_NOT_ARRIVE));
                //        break;
                //    case "-3":
                //        MsgBox.Warn(string.Format("删除单据“{0}”的明细失败,请稍后重试。", errHeader.BillID));
                //        break;
                //    case "-4":
                //        MsgBox.Warn(string.Format("删除单据“{0}”的表头失败,请稍后重试。", errHeader.BillID));
                //        break;
                //}
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
Example #11
0
        private void OnHeadFocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            if (gvHeader.FocusedRowHandle < 0)
            {
                return;
            }
            AsnBodyEntity entity = gvHeader.GetRow(gvHeader.FocusedRowHandle) as AsnBodyEntity;

            gvDetails.ViewCaption = String.Format("订单号:{0}   供应商:{1}", entity.BillNO, entity.SupplierName);
            listDetail            = GetDetailByBillID(entity.BillID);
            gdDetails.DataSource  = listDetail;
        }
Example #12
0
        private void OnOKClick(object sender, EventArgs e)
        {
            AsnBodyEntity asn = FocusedHeader;

            if (asn == null)
            {
                MsgBox.Warn("未选中任何订单行。");
            }
            else
            {
                this.DialogResult = DialogResult.OK;
            }
        }
Example #13
0
        /// <summary>
        /// 取消到货确认
        /// </summary>
        /// <param name="focusedHeaders"></param>
        public void CancelReceivedConfirm(List <AsnBodyEntity> focusedHeaders)
        {
            if (GetFocusedRowCount(focusedHeaders) == 0)
            {
                MsgBox.Warn("请选中要取消确认的行。");
                return;
            }

            //先从界面上判断一下,减少网络交互和数据库负载
            foreach (AsnBodyEntity header in focusedHeaders)
            {
                if (header.BillState != BillStateConst.ASN_STATE_CODE_ARRIVED)
                {
                    MsgBox.Warn(string.Format("单据“{0}”不允许取消,必须是已执行到货确认但尚未开始验收的单据。", header.BillID));
                    return;
                }
            }

            if (MsgBox.AskOK(string.Format("您选择了“{0}”张单据“{1}”,确认要取消确认吗?",
                                           GetFocusedRowCount(focusedHeaders), GetFocusedBillIDs(focusedHeaders))) != DialogResult.OK)
            {
                return;
            }

            try
            {
                AsnBodyEntity errHeader = null;
                //string result = asnDal.CancelReceivedConfirm(focusedHeaders, GlobeSettings.LoginedUser.UserName, out errHeader);
                //switch (result)
                //{
                //    case "1":
                //        //成功,刷新界面即可,不再提示
                //        ReloadStateDesc(focusedHeaders);
                //        break;
                //    case "-1":
                //        MsgBox.Warn(string.Format("取消失败,单据“{0}”不存在。", errHeader.BillID));
                //        break;
                //    case "-2":
                //        MsgBox.Warn(string.Format("单据“{0}”不允许取消,必须是已执行到货确认但尚未开始验收的单据。", errHeader.BillID));
                //        break;
                //    case "-3":
                //        MsgBox.Warn(string.Format("更新单据“{0}”的状态时失败,请稍后重试或联系管理员解决此问题。", errHeader.BillID));
                //        break;
                //}
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
Example #14
0
        /// <summary>
        /// 删除选中的单据,状态必须为草稿
        /// </summary>
        /// <param name="focusedHeaders"></param>
        /// <param name="userName"></param>
        /// <param name="errHeader"></param>
        /// <returns>1:成功;0:未知;-1:单据未找到;-2:不是草稿;-3:删除明细时,一行都没受影响;-4:删除主表时,一行都没受影响</returns>
        public string Delete(List <AsnBodyEntity> focusedHeaders, string userName, out AsnBodyEntity errHeader)
        {
            errHeader = null;

            DynamicParameters parms = new DynamicParameters();

            parms.Add("P_BILL_ID");
            parms.Add("P_USER_NAME", userName);
            parms.AddOut("P_RET_VAL", DbType.String, 2);

            IMapper        map  = DatabaseInstance.Instance();
            IDbTransaction tran = map.BeginTransaction();

            try
            {
                string result = string.Empty;
                foreach (AsnBodyEntity header in focusedHeaders)
                {
                    parms.Set("P_BILL_ID", header.BillID);
                    map.Execute("P_ASN_DEL_BILL", parms, tran, CommandType.StoredProcedure);

                    result = parms.Get <string>("P_RET_VAL");
                    if (result != "1")
                    {
                        errHeader = header;
                        break;
                    }
                }

                if (result == "1")
                {
                    tran.Commit();
                }
                else
                {
                    tran.Rollback();
                }

                return(result);
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw ex;
            }
        }
Example #15
0
        void ShowAsnDetail(string billID)
        {
            if (!string.IsNullOrEmpty(billID))
            {
                AsnBodyEntity header = asnQueryDal.GetBillHeader(billID);
                if (header != null)
                {
                    header.Details = asnQueryDal.GetDetailByBillID(billID);
                    ShowAsnDetail(header);

                    //复制并创建新单据
                    if (this.IsCopyNew)
                    {
                        ClearBillID();
                    }
                }
            }
        }
Example #16
0
        /// <summary>
        /// 处理写入数据库
        /// </summary>
        void SaveToDatabase()
        {
            if (!CanSave())
            {
                return;
            }

            try
            {
                //提交,通过BillID可以得知是否新建
                AsnBodyEntity asn    = PrepareData();
                string        errMsg = string.Empty;
                string        result = asnDal.SaveBill(asn, GlobeSettings.LoginedUser.UserName, out errMsg);
                switch (result)
                {
                case "1":
                    //txtBillID.Text = asn.BillID;
                    //txtBillState.Text = asn.BillStateDesc;
                    MsgBox.OK("保存成功。");
                    break;

                case "2":
                case "4":
                    MsgBox.Warn("更新单据信息失败,可能该单据已经被其他人删除。");
                    break;

                case "3":
                    MsgBox.Warn("该单据当前状态不允许修改,只有“尚未到货确认”的单据才能修改。");
                    break;

                case "11":
                    MsgBox.Warn(string.Format("保存失败,物料‘{0}’不存在。", errMsg));
                    break;

                default:
                    MsgBox.Err("保存失败,错误信息未知,请记下操作轨迹,联系管理员协助解决。");
                    break;
                }
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
        }
Example #17
0
        public void ViewLog(AsnBodyEntity focusedHeader)
        {
            if (focusedHeader == null)
            {
                MsgBox.Warn("请选中要查看的行。");
                return;
            }

            if (GetFocusedRowCount(iasn.GetFocusedHeaders()) > 1)
            {
                MsgBox.Warn("不支持多行操作,请选择其中一行。");
                return;
            }

            using (FrmViewBillLog frmLog = new FrmViewBillLog(focusedHeader.BillID, focusedHeader.BillNO, "入库单据"))
            {
                frmLog.ShowDialog();
            }
        }
Example #18
0
        public void BindingDetail()
        {
            AsnBodyEntity header = FocusedHeader;

            if (header == null)
            {
                gdDetails.DataSource  = null;
                gvDetails.ViewCaption = "未选择单据";
            }
            else
            {
                if (header.Details == null)
                {
                    header.Details = GetDetailByBillID(header.BillID);
                }

                gdDetails.DataSource  = header.Details;
                gvDetails.ViewCaption = string.Format("明细-{0}|{1}", header.BillNO, header.SupplierName);
            }
        }
Example #19
0
        private void ReloadStateDesc(List <AsnBodyEntity> headers)
        {
            //从集合中取出一个单据的状态,更新集合中的其他单据的状态
            if (headers != null && headers.Count > 0)
            {
                AsnBodyEntity poState = GetBillState(headers[0].BillID);
                headers.ForEach(h =>
                {
                    h.BillState      = poState.BillState;
                    h.BillStateDesc  = poState.BillStateDesc;
                    h.LastUpdateBy   = poState.LastUpdateBy;
                    h.LastUpdateDate = poState.LastUpdateDate;
                    h.RowForeColor   = poState.RowForeColor;
                    h.Remark         = poState.Remark;
                });

                //刷新界面
                iasn.RefreshState();
            }
        }
Example #20
0
        /// <summary>
        /// 用窗体的内容初始化实体对象
        /// </summary>
        AsnBodyEntity PrepareData()
        {
            AsnBodyEntity asn = new AsnBodyEntity();

            asn.Details = bindingSource1.DataSource as List <PODetailEntity>;

            //组织表头,不要填写BillID,业务员直接保存名称
            //asn.BillID = txtBillID.Text;
            //asn.OrgCode = GlobeSettings.LoginedUser.OrgCode;
            //asn.PoNO = txtPO.Text.Trim();
            //asn.Sales = listRespPerson.Text;
            //asn.Supplier = ConvertUtil.ToString(listSupplier.EditValue);
            //asn.InstoreType = ConvertUtil.ToString(listInstoreType.EditValue);
            //asn.BillType = ConvertUtil.ToString(listBillType.EditValue);
            //asn.Remark = txtRemark.Text.Trim();
            //asn.Creator = GlobeSettings.LoginedUser.UserName;
            //asn.ContractNO = txtContractNO.Text.Trim();
            //asn.DeliveryDate = dateEditDelivery.DateTime;

            return(asn);
        }
Example #21
0
        /// <summary>
        /// 更新订单状态
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool BillState_Change(string state, AsnBodyEntity entity)
        {
            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("billState=").Append(state).Append("&");
                loStr.Append("billId=").Append(entity.BillID);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_BillState_Change);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    return(false);
                }
                #endregion

                #region 正常错误处理

                Sucess bill = JsonConvert.DeserializeObject <Sucess>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(false);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(false);
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }

            return(false);
        }
Example #22
0
        /// <summary>
        /// 收货单据管理,查询订单中未复核的托盘
        /// </summary>
        /// <param name="header"></param>
        /// <returns></returns>
        public bool GetContainerNochek(AsnBodyEntity header)
        {
            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("billId=").Append(header.BillID);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_GetContainerNochek);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    //LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(false);
                }
                #endregion

                #region 正常错误处理

                Sucess bill = JsonConvert.DeserializeObject <Sucess>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(false);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(false);
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }

            return(false);
        }
Example #23
0
        public void EditRemark(AsnBodyEntity focusedHeader)
        {
            if (focusedHeader == null)
            {
                MsgBox.Warn("请选中要编写备注的行。");
                return;
            }

            if (GetFocusedRowCount(iasn.GetFocusedHeaders()) > 1)
            {
                MsgBox.Warn("不支持多行操作,请选择其中一行。");
                return;
            }

            using (FrmAsnEditRemark frmEditRemark = new FrmAsnEditRemark(focusedHeader))
            {
                if (frmEditRemark.ShowDialog() == DialogResult.OK)
                {
                    iasn.RefreshState();
                }
            }
        }
Example #24
0
        void ShowAsnDetail(AsnBodyEntity asn)
        {
            if (asn != null)
            {
                //txtBillID.Text = asn.BillID;
                //txtPO.Text = asn.PoNO;
                //listRespPerson.Text = asn.Sales;
                //listRespPerson.ClosePopup();
                //listSupplier.EditValue = asn.Supplier;
                //listBillType.EditValue = asn.BillType;
                //txtRemark.Text = asn.Remark;
                //txtBillState.Text = asn.BillStateDesc;

                bindingSource1.DataSource = asn.Details;

                //复制并创建新单据
                if (this.IsCopyNew)
                {
                    ClearBillID();
                }
            }
        }
Example #25
0
        /// <summary>
        /// 读取等待到货(也就是没有做到货登记)的单据
        /// </summary>
        /// <param name="warehouseCode"></param>
        /// <returns></returns>
        private List <AsnBodyEntity> QueryNotRelatedBills(string warehouseCode)
        {
            List <AsnBodyEntity> list = new List <AsnBodyEntity>();

            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("billState=").Append(BillStateConst.ASN_STATE_CODE_NOT_ARRIVE).Append("&");
                loStr.Append("wareHouseCode=").Append(warehouseCode);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_QueryNotRelatedBills);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    //LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(list);
                }
                #endregion

                #region 正常错误处理

                JsonBills bill = JsonConvert.DeserializeObject <JsonBills>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(list);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(list);
                }
                #endregion

                #region 赋值数据
                foreach (JsonBillsResult jbr in bill.result)
                {
                    AsnBodyEntity asnEntity = new AsnBodyEntity();
                    asnEntity.OriginalBillNO  = jbr.originalBillNo;
                    asnEntity.InstoreTypeDesc = jbr.instoreTypeDesc;
                    asnEntity.Creator         = jbr.creator;
                    asnEntity.InstoreType     = jbr.instoreType;
                    asnEntity.ContractNO      = jbr.contractNo;
                    asnEntity.BillType        = jbr.billType;
                    //nameS
                    asnEntity.RowForeColor  = Convert.ToInt32(jbr.rowColor);
                    asnEntity.BillState     = jbr.billState;
                    asnEntity.BillStateDesc = jbr.billStateDesc;
                    asnEntity.Remark        = jbr.remark;

                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.closeDate))
                        {
                            asnEntity.CloseDate = Convert.ToDateTime(jbr.closeDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("FrmVehicle+QueryNotRelatedBills", msg);
                    }
                    #endregion

                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.printedTime))
                        {
                            asnEntity.PrintedTime = Convert.ToDateTime(jbr.printedTime);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("FrmVehicle+QueryNotRelatedBills", msg);
                    }
                    #endregion

                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.createDate))
                        {
                            asnEntity.CreateDate = Convert.ToDateTime(jbr.createDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("FrmVehicle+QueryNotRelatedBills", msg);
                    }
                    #endregion

                    asnEntity.WmsRemark = jbr.wmsRemark;
                    asnEntity.Printed   = Convert.ToInt32(jbr.printed);
                    //sCode
                    //asnEntity.SupplierCode = jbr.cName;
                    asnEntity.SupplierName = jbr.cName;
                    asnEntity.BillID       = Convert.ToInt32(jbr.billId);
                    asnEntity.BillNO       = jbr.billNo;
                    asnEntity.Sales        = jbr.salesMan;
                    asnEntity.BillTypeDesc = jbr.billTypeDesc;
                    list.Add(asnEntity);
                }
                return(list);

                #endregion
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
            return(list);
        }
Example #26
0
        /// <summary>
        /// 收货单据管理,打印--查询订单主表信息
        /// </summary>
        /// <param name="billID"></param>
        /// <returns></returns>
        public AsnHeaderEntity GetBillHeader(int billID)
        {
            AsnBodyEntity tm = new AsnBodyEntity();

            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("billId=").Append(billID);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_GetBillHeader);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    //LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(tm);
                }
                #endregion

                #region 正常错误处理

                JsonBills bill = JsonConvert.DeserializeObject <JsonBills>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(tm);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(tm);
                }
                #endregion
                List <AsnBodyEntity> list = new List <AsnBodyEntity>();
                #region 赋值数据
                foreach (JsonBillsResult jbr in bill.result)
                {
                    AsnBodyEntity asnEntity = new AsnBodyEntity();
                    asnEntity.OriginalBillNO  = jbr.originalBillNo;
                    asnEntity.InstoreTypeDesc = jbr.instoreTypeDesc;
                    asnEntity.Creator         = jbr.creator;
                    asnEntity.InstoreType     = jbr.instoreType;
                    asnEntity.ContractNO      = jbr.contractNo;
                    asnEntity.BillType        = jbr.billType;
                    //nameS
                    asnEntity.RowForeColor  = Convert.ToInt32(jbr.rowColor);
                    asnEntity.BillState     = jbr.billState;
                    asnEntity.BillStateDesc = jbr.billStateDesc;
                    asnEntity.Remark        = jbr.remark;

                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.closeDate))
                        {
                            asnEntity.CloseDate = Convert.ToDateTime(jbr.closeDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("RepAsnTransfer+GetBillHeader", msg);
                    }
                    #endregion

                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.printedTime))
                        {
                            asnEntity.PrintedTime = Convert.ToDateTime(jbr.printedTime);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("RepAsnTransfer+GetBillHeader", msg);
                    }
                    #endregion


                    #region
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.createDate))
                        {
                            asnEntity.CreateDate = Convert.ToDateTime(jbr.createDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("RepAsnTransfer+GetBillHeader", msg);
                    }
                    #endregion

                    asnEntity.WmsRemark = jbr.wmsRemark;
                    asnEntity.Printed   = Convert.ToInt32(jbr.printed);
                    //sCode
                    //asnEntity.SupplierCode = jbr.cName;
                    asnEntity.SupplierName = jbr.cName;
                    asnEntity.BillID       = Convert.ToInt32(jbr.billId);
                    asnEntity.BillNO       = jbr.billNo;
                    asnEntity.Sales        = jbr.salesMan;
                    asnEntity.BillTypeDesc = jbr.billTypeDesc;
                    list.Add(asnEntity);
                }
                if (list.Count > 0)
                {
                    return(list[0]);
                }
                #endregion
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
            return(tm);
        }
Example #27
0
        /// <summary>
        /// 收货单据管理, 多条件查询
        /// </summary>
        /// <param name="warehouseCode"></param>
        /// <param name="billID"></param>
        /// <param name="poNO"></param>
        /// <param name="billState"></param>
        /// <param name="supplier"></param>
        /// <param name="billType"></param>
        /// <param name="material"></param>
        /// <param name="sales"></param>
        /// <param name="dateFrom"></param>
        /// <param name="dateTo"></param>
        /// <param name="dateComFrom"></param>
        /// <param name="dateComTo"></param>
        /// <returns></returns>
        public List <AsnBodyEntity> QueryBills(string warehouseCode, string billID, string poNO, string billState, string supplier,
                                               string billType, string material, string sales, DateTime?dateFrom, DateTime?dateTo, DateTime?dateComFrom, DateTime?dateComTo)
        {
            #region 组装slq条件
            //string strWhereCondition = "WHERE H.WH_CODE = @WH_CODE";

            ////建单日期
            //if (dateFrom.HasValue)
            //{
            //    strWhereCondition += " AND H.CREATE_DATE >= @P_CREATE_DATE_FROM";
            //}

            //if (dateTo.HasValue)
            //{
            //    strWhereCondition += " AND H.CREATE_DATE <= @P_CREATE_DATE_TO";
            //}
            ////最后更新日期
            //if (dateComFrom.HasValue)
            //{
            //    strWhereCondition += " AND H.LAST_UPDATETIME >= @P_CLODE_DATE_FROM";
            //}

            //if (dateComTo.HasValue)
            //{
            //    strWhereCondition += " AND H.LAST_UPDATETIME <= @P_CLODE_DATE_TO";
            //}

            ////单据编号
            //if (!string.IsNullOrEmpty(billID))
            //{
            //    strWhereCondition += " AND H.BILL_NO = @P_BILL_NO";
            //}

            ////原采购单编号
            //if (!string.IsNullOrEmpty(poNO))
            //{
            //    strWhereCondition += " AND H.PO_NO = @P_PO_NO";
            //}

            ////供应商
            //if (!string.IsNullOrEmpty(supplier))
            //{
            //    strWhereCondition += " AND H.SUPPLIER = @P_SUPPLIER";
            //}

            ////业务类型
            //if (!string.IsNullOrEmpty(billType))
            //{
            //    strWhereCondition += " AND H.BILL_TYPE = @P_BILL_TYPE";
            //}

            ////业务员
            //if (!string.IsNullOrEmpty(sales))
            //{
            //    strWhereCondition += " AND H.SALES = @P_SALES";
            //}

            ////状态有可能是多个,这个需要转换为OR,直接拼接成字符串,不用参数了
            //if (!string.IsNullOrEmpty(billState))
            //{
            //    //假设billState=12,13,15,函数FormatParameter转换为BILL_STATE = '12' OR BILL_STATE = '13' OR BILL_STATE = '15'
            //    strWhereCondition += string.Concat(" AND (", DBUtil.FormatParameter("H.BILL_STATE", billState), ")");
            //}

            ////物料编码或名称,支持模糊查询,因为物料在明细表中,反查出的主表数据会重复,所以要用DISTINCT
            ////另外不要使用字段拼接,oracle和sql的语法不一样
            //if (!string.IsNullOrEmpty(material))
            //{
            //    strWhereCondition += " AND EXISTS(SELECT 1 FROM WM_ASN_DETAIL D INNER JOIN WM_MATERIALS M ON D.MTL_CODE = M.MTL_CODE WHERE H.BILL_ID = D.BILL_ID AND (D.MTL_CODE like @P_MTL_CODE OR M.MTL_NAME LIKE @P_MTL_CODE OR M.MTL_NAME_S LIKE @P_MTL_CODE OR M.NAME_PY LIKE @P_MTL_CODE))";
            //}
            #endregion

            List <AsnBodyEntity> list = new List <AsnBodyEntity>();

            try
            {
                #region 请求数据
                System.Text.StringBuilder loStr = new System.Text.StringBuilder();
                loStr.Append("warehouseCode=").Append(warehouseCode).Append("&");
                loStr.Append("dateFrom=").Append(dateFrom).Append("&");
                loStr.Append("dateTo=").Append(dateTo).Append("&");
                loStr.Append("dateComFrom=").Append(dateComFrom).Append("&");
                loStr.Append("dateComTo=").Append(dateComTo).Append("&");
                loStr.Append("billID=").Append(billID).Append("&");
                loStr.Append("poNO=").Append(poNO).Append("&");
                loStr.Append("billState=").Append(billState).Append("&");
                loStr.Append("billType=").Append(billType).Append("&");
                loStr.Append("material=").Append(material).Append("&");
                loStr.Append("sales=").Append(sales).Append("&");
                loStr.Append("supplier=").Append(supplier);
                string jsonQuery = WebWork.SendRequest(loStr.ToString(), WebWork.URL_QueryBills);
                if (string.IsNullOrEmpty(jsonQuery))
                {
                    MsgBox.Warn(WebWork.RESULT_NULL);
                    //LogHelper.InfoLog(WebWork.RESULT_NULL);
                    return(list);
                }
                #endregion

                #region 正常错误处理

                JsonBills bill = JsonConvert.DeserializeObject <JsonBills>(jsonQuery);
                if (bill == null)
                {
                    MsgBox.Warn(WebWork.JSON_DATA_NULL);
                    return(list);
                }
                if (bill.flag != 0)
                {
                    MsgBox.Warn(bill.error);
                    return(list);
                }
                #endregion

                #region 赋值数据
                foreach (JsonBillsResult jbr in bill.result)
                {
                    AsnBodyEntity asnEntity = new AsnBodyEntity();
                    asnEntity.OriginalBillNO  = jbr.originalBillNo;
                    asnEntity.InstoreTypeDesc = jbr.instoreTypeDesc;
                    asnEntity.Creator         = jbr.creator;
                    asnEntity.InstoreType     = jbr.instoreType;
                    asnEntity.ContractNO      = jbr.contractNo;
                    asnEntity.BillType        = jbr.billType;
                    //nameS
                    asnEntity.RowForeColor  = Convert.ToInt32(jbr.rowColor);
                    asnEntity.BillState     = jbr.billState;
                    asnEntity.BillStateDesc = jbr.billStateDesc;
                    asnEntity.Remark        = jbr.remark;
                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.closeDate))
                        {
                            asnEntity.CloseDate = Convert.ToDateTime(jbr.closeDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("UcAsnQueryEngine+QueryBills", msg);
                    }


                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.printedTime))
                        {
                            asnEntity.PrintedTime = Convert.ToDateTime(jbr.printedTime);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("UcAsnQueryEngine+QueryBills", msg);
                    }

                    try
                    {
                        if (!string.IsNullOrEmpty(jbr.createDate))
                        {
                            asnEntity.CreateDate = Convert.ToDateTime(jbr.createDate);
                        }
                    }
                    catch (Exception msg)
                    {
                        MsgBox.Warn(msg.Message);
                        //LogHelper.errorLog("UcAsnQueryEngine+QueryBills", msg);
                    }



                    asnEntity.WmsRemark = jbr.wmsRemark;
                    asnEntity.Printed   = Convert.ToInt32(jbr.printed);
                    //sCode
                    //asnEntity.SupplierCode = jbr.cName;
                    asnEntity.SupplierName = jbr.cName;
                    asnEntity.BillID       = Convert.ToInt32(jbr.billId);
                    asnEntity.BillNO       = jbr.billNo;
                    asnEntity.Sales        = jbr.salesMan;
                    asnEntity.BillTypeDesc = jbr.billTypeDesc;
                    list.Add(asnEntity);
                }
                return(list);

                #endregion
            }
            catch (Exception ex)
            {
                MsgBox.Err(ex.Message);
            }
            return(list);
        }
Example #28
0
        /// <summary>
        ///获取没有复核的托盘
        /// </summary>
        /// <param name="header"></param>
        /// <returns></returns>
        public string GetContainerNochek(AsnBodyEntity header)
        {
            IMapper map = DatabaseInstance.Instance();

            return(map.ExecuteScalar <string>("SELECT GROUP_CONCAT(wcs.CT_CODE) FROM wm_container_state wcs WHERE wcs.BILL_HEAD_ID =@BillID AND wcs.CT_STATE <>83", new { BillID = header.BillID }));
        }
Example #29
0
        /// <summary>
        /// 保存编辑的采购单
        /// </summary>
        /// <param name="bill"></param>
        /// <param name="creator">创建者姓名</param>
        /// <returns>-1:单据状态不允许编辑;0:更新表头时失败;1:成功</returns>
        public string SaveBill(AsnBodyEntity bill, string creator, out string errMsg)
        {
            //记录详细的错误,例如具体是哪个物料不存在了等等
            errMsg = string.Empty;

            IMapper        map   = DatabaseInstance.Instance();
            IDbTransaction trans = map.BeginTransaction();

            try
            {
                DynamicParameters parms = new DynamicParameters();
                parms.Add("P_BILL_ID", bill.BillID);
                parms.Add("P_ORG_CODE", bill.OrgCode);
                parms.Add("P_BILL_TYPE", bill.BillType);
                parms.Add("P_INSTORE_TYPE", bill.InstoreType);
                parms.Add("P_PO_NO", bill.OriginalBillNO);
                parms.Add("P_CONTRACT_NO", bill.ContractNO);
                parms.Add("P_SALES", bill.Sales);
                parms.Add("P_SUPPLIER", bill.SupplierCode);
                parms.Add("P_REMARK", bill.Remark);
                parms.Add("P_CREATOR", creator);
                parms.AddOut("P_NEW_BILL_ID", DbType.String, 50);
                parms.AddOut("P_RET_VAL", DbType.String, 2);

                //先写入主表
                map.Execute("P_ASN_SAVE_HEADER", parms, trans, CommandType.StoredProcedure);

                //获取返回值,只有1表示成功
                string retVal = parms.Get <string>("P_RET_VAL");
                if (retVal != "1")
                {
                    trans.Rollback();
                    return(retVal);
                }

                //保存明细
                int newBillID = parms.Get <int>("P_NEW_BILL_ID");

                parms = new DynamicParameters();
                parms.Add("P_BILL_ID", newBillID);
                parms.Add("P_MTL_CODE");
                parms.Add("P_QTY");
                parms.Add("P_PRICE");
                parms.Add("P_LOT_NO");
                parms.Add("P_EXP_DATE");
                parms.Add("P_REMARK");
                parms.AddOut("P_RET_VAL", DbType.String, 2);

                //再写明细
                foreach (PODetailEntity line in bill.Details)
                {
                    parms.Set("P_MTL_CODE", line.MaterialCode);
                    parms.Set("P_QTY", line.PlanQty);
                    //parms.Set("P_PRICE", line.Price);
                    parms.Set("P_LOT_NO", line.BatchNO);
                    parms.Set("P_EXP_DATE", line.ExpDate);
                    parms.Set("P_REMARK", line.Remark);

                    map.Execute("P_ASN_SAVE_DETAIL", parms, trans, CommandType.StoredProcedure);
                    retVal = parms.Get <string>("P_RET_VAL");
                    if (retVal != "1")
                    {
                        if (retVal == "11")
                        {
                            errMsg = line.MaterialCode;
                        }

                        trans.Rollback();
                        break;
                    }
                }

                if (retVal == "1")
                {
                    trans.Commit();

                    bill.BillState     = BillStateConst.ASN_STATE_CODE_NOT_ARRIVE;
                    bill.BillStateDesc = BillStateConst.ASN_STATE_DESC_NOT_ARRIVE;

                    bill.BillID = newBillID;
                }

                return(retVal);
            }
            catch (Exception ex) //只能是insert语句产生了异常,先回滚再抛出异常信息
            {
                trans.Rollback();
                throw ex;
            }
        }
Example #30
0
 public FrmTransBillEdit(AsnBodyEntity editedAsnBody, bool isCopyNew)
     : this()
 {
     EditedAsnBody  = editedAsnBody;
     this.IsCopyNew = isCopyNew;
 }