protected bool ValidateSaveInput()
        {
            if (facade == null)
            {
                facade = new InventoryFacade(base.DataProvider);
            }
            string pickno   = FormatHelper.CleanString(this.txtPickNoQuery.Text, 40);
            string pickline = FormatHelper.CleanString(this.txtPickLineEdit.Text, 40);
            //string dqmcode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtDQMCodeEdit.Text, 40));
            PickDetail pickdetail = (PickDetail)facade.GetPickDetail(pickno, pickline);

            if (pickdetail == null)
            {
                WebInfoPublish.Publish(this, "拣货任务令行明细不存在", this.languageComponent1);
                return(false);
            }
            if (txtIsScrapEdit.Text != "Y")
            {
                decimal        decqty         = decimal.Parse(FormatHelper.CleanString(txtQtyEdit.Text));
                int            invline        = Convert.ToInt32(this.txtInvLineEidt.Text);
                string         invno          = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtInvNoEidt.Text, 40));
                InvoicesDetail invoicesDetail = (InvoicesDetail)facade.GetInvoicesDetail(invno, invline);
                if (invoicesDetail != null)
                {
                    decimal pickqty = facade.GetPickDetailQty(invno, invline);
                    if (invoicesDetail.OutQty + decqty + pickqty - pickdetail.QTY > invoicesDetail.PlanQty)
                    {
                        WebInfoPublish.Publish(this, "超出可领数量", this.languageComponent1);
                        return(false);
                    }
                }
            }
            return(true);
        }
        protected override void SetEditObject(object obj)
        {
            PickDetail pickDetail = obj as PickDetail;

            if (pickDetail == null)
            {
                this.txtDQMCodeEdit.Text = string.Empty;
                txtScarpDQMCodeEdit.Text = string.Empty;
                this.txtMDescEdit.Text   = "";
                this.txtQtyEdit.Text     = "";
                txtPickLineEdit.Text     = "";
                txtInvLineEidt.Text      = "";
                return;
            }

            ItemFacade itemFacade = new ItemFacade();

            this.txtDQMCodeEdit.Text = pickDetail.DQMCode;
            txtScarpDQMCodeEdit.Text = pickDetail.DQMCode;
            Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterial(pickDetail.MCode);
            if (material != null)
            {
                this.txtMDescEdit.Text = material.MchlongDesc;
            }
            this.txtQtyEdit.Text = pickDetail.QTY.ToString("0.00");
            txtPickLineEdit.Text = pickDetail.PickLine;
            txtInvLineEidt.Text  = pickDetail.InvLine.ToString();
        }
        public void RemovePickDetail(ApplicationDbContext context, PickDetail pickDetailInDb, int putBackCtns, int putBackPcs, string orderType)
        {
            if (orderType == OrderType.Regular)
            {
                pickDetailInDb.FCRegularLocationDetail.AvailableCtns += putBackCtns;
                pickDetailInDb.FCRegularLocationDetail.PickingCtns   -= putBackCtns;

                pickDetailInDb.FCRegularLocationDetail.AvailablePcs += putBackPcs;
                pickDetailInDb.FCRegularLocationDetail.PickingPcs   -= putBackPcs;

                //刷新被放回地点状态
                pickDetailInDb.Status = RefreshRegularStatus(pickDetailInDb.FCRegularLocationDetail);

                //如果放回的箱数件数刚好等于拣货的箱数件数,那么移除拣货记录
                if (putBackCtns == pickDetailInDb.PickCtns && putBackPcs == pickDetailInDb.PickPcs)
                {
                    context.PickDetails.Remove(pickDetailInDb);
                }
                //否则仍然保留拣货记录
                else
                {
                    pickDetailInDb.PickCtns -= putBackCtns;
                    pickDetailInDb.PickPcs  -= putBackPcs;
                }
            }
            else if (orderType == OrderType.Permanent)
            {
                //如果放回的件数刚好等于拣货的件数,那么移除拣货记录
                if (putBackPcs == pickDetailInDb.PickPcs)
                {
                    context.PickDetails.Remove(pickDetailInDb);
                }
                //否则仍然保留拣货记录
                else
                {
                    pickDetailInDb.PickPcs -= putBackPcs;
                }
            }
        }
Example #4
0
 private PickDetailHistory ConvertPickDetailToPickDetailHistory(PickDetail pickDetail)
 {
     return(new PickDetailHistory
     {
         Container = pickDetail.Container,
         vendor = pickDetail.ShipOrder.Vendor,
         CutPO = pickDetail.PurchaseOrder,
         ShipPO = pickDetail.ShipOrder.OrderPurchaseOrder,
         ShipDate = pickDetail.ShipOrder.ShipDate,
         CustomerCode = pickDetail.CustomerCode,
         Style = pickDetail.Style,
         Status = pickDetail.ShipOrder.Status,
         Color = pickDetail.Color,
         Size = pickDetail.SizeBundle,
         Pcs = pickDetail.PcsBundle,
         PickedCtns = pickDetail.PickCtns,
         PickedPcs = pickDetail.PickPcs,
         AllocatedBy = pickDetail.FCRegularLocationDetail == null ? pickDetail.ReplenishmentLocationDetail.Operator : pickDetail.FCRegularLocationDetail.Allocator,
         CartonRange = pickDetail.CartonRange,
         Batch = pickDetail.FCRegularLocationDetail == null ? "N/A" : pickDetail.FCRegularLocationDetail.Batch,
         Location = pickDetail.FCRegularLocationDetail == null ? pickDetail.ReplenishmentLocationDetail.Location : pickDetail.FCRegularLocationDetail.Location
     });
 }
Example #5
0
        private Error addPickDetails(PickHeaderModel pickHeader, List <SalesOrderDetailModel> sodList)
        {
            // Adds detail lines to a pick.
            var error = new Error();

            foreach (var item in sodList)
            {
                var pickD = new PickDetail {
                    CompanyId           = pickHeader.CompanyId.Value,
                    PickHeaderId        = pickHeader.Id,
                    ProductId           = item.ProductId,
                    QtyToPick           = item.PickQty,
                    QtyPicked           = 0,
                    PickDetailStatusId  = (int)PickDetailStatus.ToBePicked,
                    SalesOrderDetailId  = item.Id,
                    PickLocationId      = pickHeader.LocationId,
                    IsReportedToWebsite = false
                };
                db.InsertOrUpdatePickDetail(pickD);

                pickHeader.PickDetails.Add(mapToModel(pickD));
            }
            return(error);
        }
        protected override object GetEditObject()
        {
            if (this.ValidateInput())
            {
                if (facade == null)
                {
                    facade = new InventoryFacade(base.DataProvider);
                }
                ItemFacade itemFacade = new ItemFacade();
                DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);
                string     pickno     = FormatHelper.CleanString(this.txtPickNoQuery.Text, 40);
                string     pickline   = FormatHelper.CleanString(this.txtPickLineEdit.Text, 40);
                string     dqmcode    = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtDQMCodeEdit.Text, 40));
                string     custMCode  = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtCustmCodeEdit.Text, 40));
                if (txtPickTypeQuery.Text == PickType.PickType_BFC) //BFC:报废
                {
                    dqmcode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtScarpDQMCodeEdit.Text, 40));
                }

                string     mdesc      = FormatHelper.CleanString(this.txtMDescEdit.Text);
                int        invline    = 0;
                PickDetail pickDetail = (PickDetail)facade.GetPickDetail(pickno, pickline);
                if (pickDetail == null)
                {
                    pickDetail = new PickDetail();
                    int maxpickline = facade.GetMaxPickLine1(pickno);
                    pickDetail.PickNo = pickno;

                    pickDetail.PickLine = (maxpickline + 1).ToString();


                    #region MCode
                    Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterialByDQMCode(dqmcode);
                    if (material != null)
                    {
                        pickDetail.MCode = material.MCode;
                        pickDetail.Unit  = material.Muom;
                    }
                    else
                    {
                        pickDetail.MCode = " ";
                        pickDetail.Unit  = string.Empty;
                    }
                    #endregion
                    //根据鼎桥物料编码在物料表(TBLMATERIAL)带出TBLMATERIAL.MCODE值
                    pickDetail.MaintainUser = this.GetUserCode();
                    pickDetail.MaintainDate = dbDateTime.DBDate;
                    pickDetail.MaintainTime = dbDateTime.DBTime;
                    pickDetail.CUser        = this.GetUserCode();
                    pickDetail.CDate        = dbDateTime.DBDate;
                    pickDetail.CTime        = dbDateTime.DBTime;
                    pickDetail.Status       = PickHeadStatus.PickHeadStatus_Release;//Release:初始化
                    //pickDetail.CustMCode = custMCode;
                }

                if (!string.IsNullOrEmpty(txtInvLineEidt.Text))
                {
                    invline            = Convert.ToInt32(this.txtInvLineEidt.Text);
                    pickDetail.InvLine = invline;
                }
                pickDetail.MDesc     = mdesc;
                pickDetail.DQMCode   = dqmcode;
                pickDetail.CustMCode = custMCode;
                string qty = FormatHelper.CleanString(this.txtQtyEdit.Text, 40);
                if (!string.IsNullOrEmpty(qty))
                {
                    if (IsDecimal(qty))
                    {
                        pickDetail.QTY = decimal.Parse((decimal.Parse(qty)).ToString("0.00"));
                    }
                }
                else
                {
                    pickDetail.QTY = 0;
                }
                return(pickDetail);
            }
            else
            {
                return(null);
            }
        }
Example #7
0
        protected override void DeleteDomainObjects(ArrayList domainObjects)
        {
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            }
            if (_InventoryFacade == null)
            {
                _InventoryFacade = new InventoryFacade(this.DataProvider);
            }
            CARTONINVDETAILSN[] cartoninvdetailsnList = ((CARTONINVDETAILSN[])domainObjects.ToArray(typeof(CARTONINVDETAILSN)));
            try
            {
                this.DataProvider.BeginTransaction();
                foreach (CARTONINVDETAILSN cartoninvdetailsn in cartoninvdetailsnList)
                {
                    //1、删除完SN后,同时删除掉对应的TBLCARTONINVDETAILMATERIAL,TBLCARTONINVDETAIL信息。
                    //2、拣货任务令头状态为pick,且发货箱单头状态为Release时才可以删除。
                    #region delete
                    _WarehouseFacade.DELETECARTONINVDETAILSN(cartoninvdetailsn);
                    Pick       pickHead   = _InventoryFacade.GetPick(cartoninvdetailsn.PICKNO) as Pick;
                    PickDetail pickDetail = _InventoryFacade.GetPickDetail(cartoninvdetailsn.PICKNO, cartoninvdetailsn.PICKLINE) as PickDetail;
                    //Pickdetailmaterial pickdetailmaterial = _WarehouseFacade.GetPickdetailmaterial(cartonInvDetailMaterial.PICKNO, cartonInvDetailMaterial.CARTONNO) as Pickdetailmaterial;
                    if (pickDetail == null || pickHead == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    object[] objPickdetailmaterials = this._WarehouseFacade.QueryPICKDetailMaterialBydqMCode(cartoninvdetailsn.PICKNO, pickDetail.DQMCode);
                    if (objPickdetailmaterials == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    CARTONINVOICES cartoninvoices = _WarehouseFacade.GetCartoninvoices(cartoninvdetailsn.CARINVNO)
                                                    as CARTONINVOICES;
                    if (cartoninvoices == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    //if (!(cartoninvoices.STATUS == PickDetail_STATUS.Status_Release))
                    //{
                    //    this.DataProvider.RollbackTransaction();
                    //    WebInfoPublish.Publish(this, "发货箱单头状态为Release时才可以删除", this.languageComponent1);
                    //    return;
                    //}
                    if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick || pickHead.Status == PickHeadStatus.PickHeadStatus_WaitPick))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "拣货任务令头状态为pick或者待拣料时才可以删除", this.languageComponent1);
                        return;
                    }
                    object[] cartoninvdetailSnList = _WarehouseFacade.GetCartoninvdetailsnByCartonno(cartoninvdetailsn.CARINVNO,
                                                                                                     cartoninvdetailsn.CARTONNO);
                    if (cartoninvdetailSnList == null)
                    {
                        CartonInvDetailMaterial cartonInvDetailMaterial = _WarehouseFacade.QueryCartonInvDetailMaterial(cartoninvdetailsn.CARINVNO,
                                                                                                                        cartoninvdetailsn.CARTONNO, pickDetail.DQMCode) as CartonInvDetailMaterial;
                        _WarehouseFacade.DeleteCartonInvDetailMaterial(cartonInvDetailMaterial);
                        _WarehouseFacade.DeleteCartoninvdetailByCartonNo(cartoninvdetailsn.CARINVNO, cartoninvdetailsn.CARTONNO);
                    }
                    else
                    {
                        CartonInvDetailMaterial cartonInvDetailMaterial = _WarehouseFacade.QueryCartonInvDetailMaterial(cartoninvdetailsn.CARINVNO,
                                                                                                                        cartoninvdetailsn.CARTONNO, pickDetail.DQMCode) as CartonInvDetailMaterial;
                        if (cartonInvDetailMaterial != null)
                        {
                            cartonInvDetailMaterial.QTY -= 1;
                            _WarehouseFacade.UpdateCartonInvDetailMaterial(cartonInvDetailMaterial);
                        }
                    }

                    pickDetail.PQTY -= 1;
                    _InventoryFacade.UpdatePickDetail(pickDetail);

                    #region Pickdetailmaterial
                    foreach (Pickdetailmaterial _pickdetailmaterial in objPickdetailmaterials)
                    {
                        decimal num = _pickdetailmaterial.PQty;
                        if (num > 0)
                        {
                            _pickdetailmaterial.PQty -= 1;
                            this._WarehouseFacade.UpdatePickdetailmaterial(_pickdetailmaterial);
                            break;
                        }
                    }
                    #endregion
                    //pickdetailmaterial.PQty-= 1;
                    //_WarehouseFacade.UpdatePickdetailmaterial(pickdetailmaterial);

                    #endregion
                }
                this.DataProvider.CommitTransaction();
                WebInfoPublish.Publish(this, "删除成功", this.languageComponent1);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1);
            }
        }
        protected override void DeleteDomainObjects(ArrayList domainObjects)
        {
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            }
            if (_InventoryFacade == null)
            {
                _InventoryFacade = new InventoryFacade(this.DataProvider);
            }
            Pickdetailmaterial[] pickdetailmaterialList = ((Pickdetailmaterial[])domainObjects.ToArray(typeof(Pickdetailmaterial)));
            try
            {
                this.DataProvider.BeginTransaction();

                Pick pick = _InventoryFacade.GetPick(txtPickNoQuery.Text) as Pick;
                if (pick == null)
                {
                    WebInfoPublish.Publish(this, pick.PickNo + "拣货任务令不存在!", this.languageComponent1);
                    return;
                }

                foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList)
                {
                    int packageCount = _WarehouseFacade.GetPackageMaterialCartonnos(pick.PickNo);
                    if (packageCount > 0)
                    {
                        WebInfoPublish.Publish(this, pick.PickNo + "包装信息存在, 请先删除包装信息!", this.languageComponent1);
                        return;
                    }
                }



                foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList)
                {
                    #region delete
                    #region delete 检查
                    //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。
                    PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail;
                    Pick       pickHead   = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick;
                    if (pickDetail == null || pickHead == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick ||
                          pickDetail.Status == PickDetail_STATUS.Status_WaitPick ||
                          pickDetail.Status == PickDetail_STATUS.Status_ClosePick || pickDetail.Status == PickDetail_STATUS.Status_Cancel))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成,取消状态,才可以删除", this.languageComponent1);
                        return;
                    }
                    if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick ||
                          pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList ||
                          pickHead.Status == PickHeadStatus.PickHeadStatus_WaitPick || pickHead.Status == PickHeadStatus.PickHeadStatus_Cancel))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单,取消状态时,才可以删除", this.languageComponent1);
                        return;
                    }



                    //  2、删除已拣行明细后,该行状态变更为待拣料。
                    _WarehouseFacade.DeletePickdetailmaterial(pickdetailm);
                    //delete pickdetailmsn
                    _WarehouseFacade.DeletePickDetailMaterialSNByCartonNo(pickdetailm.Pickno, pickdetailm.Cartonno);



                    //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。
                    #endregion

                    StorageDetail storageDetail = _WarehouseFacade.GetStorageDetail(pickdetailm.Cartonno) as StorageDetail;
                    if (storageDetail != null)
                    {
                        storageDetail.FreezeQty    -= Convert.ToInt32(pickdetailm.Qty);
                        storageDetail.AvailableQty += Convert.ToInt32(pickdetailm.Qty);
                        _WarehouseFacade.UpdateStorageDetail(storageDetail);
                        _WarehouseFacade.UpdateStorageDetailSnbyCartonNo(pickdetailm.Cartonno, "N");
                    }

                    if (pickDetail.Status != "Cancel")
                    {
                        pickDetail.Status = PickDetail_STATUS.Status_Pick;
                    }

                    pickDetail.SQTY -= pickdetailm.Qty;
                    int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno);
                    if (count == 0)
                    {
                        //pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick;
                        _WarehouseFacade.UpdatePick(pickHead);
                        //pickDetail.Status = PickDetail_STATUS.Status_WaitPick;
                    }
                    _WarehouseFacade.UpdatePickdetail(pickDetail);

                    #endregion
                }
                this.DataProvider.CommitTransaction();
                WebInfoPublish.Publish(this, "删除成功", this.languageComponent1);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1);
            }
        }
Example #9
0
        protected override void DeleteDomainObjects(ArrayList domainObjects)
        {
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            }
            if (_InventoryFacade == null)
            {
                _InventoryFacade = new InventoryFacade(this.DataProvider);
            }
            Pickdetailmaterialsn[] pickdetailmaterialList = ((Pickdetailmaterialsn[])domainObjects.ToArray(typeof(Pickdetailmaterialsn)));
            try
            {
                this.DataProvider.BeginTransaction();
                foreach (Pickdetailmaterialsn pickdetailm in pickdetailmaterialList)
                {
                    #region delete
                    //请先删除箱单信息
                    string   sn   = pickdetailm.Sn;
                    object[] list = _WarehouseFacade.GetCartoninvdetailsnBySn(sn);
                    if (list != null)
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "请先删除箱单信息", this.languageComponent1);
                        return;
                    }
                    #region delete 检查
                    //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。
                    PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail;
                    Pick       pickHead   = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick;
                    if (pickDetail == null || pickHead == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick ||
                          pickDetail.Status == PickDetail_STATUS.Status_WaitPick ||
                          pickDetail.Status == PickDetail_STATUS.Status_ClosePick || pickDetail.Status == PickDetail_STATUS.Status_Cancel))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成,取消状态,才可以删除", this.languageComponent1);
                        return;
                    }
                    if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick ||
                          pickDetail.Status == PickDetail_STATUS.Status_WaitPick ||
                          pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList || pickHead.Status == PickHeadStatus.PickHeadStatus_Cancel))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单,取消状态时,才可以删除", this.languageComponent1);
                        return;
                    }
                    //delete pickdetailmsn
                    _WarehouseFacade.DeletePickdetailmaterialsn(pickdetailm);
                    // tblPickdetailmaterial
                    object[]           snlist             = _WarehouseFacade.QueryPickdetailmaterialsnByCartonno(pickdetailm.Pickno, pickdetailm.Cartonno);
                    Pickdetailmaterial pickdetailmaterial = _WarehouseFacade.GetPickdetailmaterial(pickdetailm.Pickno, pickdetailm.Cartonno)
                                                            as Pickdetailmaterial;
                    if (pickdetailmaterial != null)
                    {
                        pickdetailmaterial.Qty -= 1;
                        _WarehouseFacade.UpdatePickdetailmaterial(pickdetailmaterial);
                        if (snlist == null)
                        {
                            _WarehouseFacade.DeletePickdetailmaterial(pickdetailmaterial);
                        }
                    }

                    //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。
                    #endregion

                    StorageDetail storageDetail = _WarehouseFacade.GetStorageDetail(pickdetailm.Cartonno) as StorageDetail;
                    if (storageDetail != null)
                    {
                        storageDetail.FreezeQty    -= 1;
                        storageDetail.AvailableQty += 1;
                        _WarehouseFacade.UpdateStorageDetail(storageDetail);
                    }
                    StorageDetailSN storageDetailsn =
                        _InventoryFacade.GetStorageDetailSN(pickdetailm.Sn) as StorageDetailSN;
                    if (storageDetailsn != null)
                    {
                        storageDetailsn.PickBlock = "N";
                        _InventoryFacade.UpdateStorageDetailSN(storageDetailsn);
                    }


                    int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno);
                    pickDetail.SQTY -= 1;
                    if (pickDetail.Status != "Cancel")
                    {
                        pickDetail.Status = PickDetail_STATUS.Status_Pick;
                    }
                    if (count == 0)
                    {
                        //pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick;
                        _WarehouseFacade.UpdatePick(pickHead);
                        //pickDetail.Status = PickDetail_STATUS.Status_WaitPick;
                    }
                    _WarehouseFacade.UpdatePickdetail(pickDetail);
                    #endregion
                }
                this.DataProvider.CommitTransaction();
                WebInfoPublish.Publish(this, "删除成功", this.languageComponent1);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1);
            }
        }
Example #10
0
        protected void CmdConfirmOweQtyObjects(object[] pickList)
        {
            // 点击该按钮,初始TBLPICKDETAIL. OweQTY为空or零,
            //点击该按钮后保存TBLPICKDETAIL. OweQTY= TBLPICKDETAIL. SQTY
            //注:只有状态为:Owe:欠料的物料行可以执行此按钮,确认后该行更新状态为ClosePick:拣料完成
            if (facade == null)
            {
                facade = new InventoryFacade(base.DataProvider);
            }
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            }
            DBDateTime dbTime = FormatHelper.GetNowDBDateTime(this.DataProvider);

            try
            {
                this.DataProvider.BeginTransaction();
                foreach (PickDetail pickdetail in pickList)
                {
                    if (pickdetail.Status == PickDetail_STATUS.Status_Owe)
                    {
                        if (pickdetail.OweQTY == 0 || string.IsNullOrEmpty(pickdetail.OweQTY.ToString()))
                        {
                            PickDetail oldpickdetail = (PickDetail)facade.GetPickDetail(pickdetail.PickNo, pickdetail.PickLine);
                            oldpickdetail.OweQTY = oldpickdetail.SQTY;
                            oldpickdetail.Status = PickDetail_STATUS.Status_ClosePick;
                            facade.UpdatePickDetail(oldpickdetail);
                        }
                        else
                        {
                            WebInfoPublish.Publish(this, "已申请欠料发货!", this.languageComponent1);
                            return;
                        }
                    }
                    else
                    {
                        WebInfoPublish.Publish(this, "只有状态为欠料的物料行可以执行此按钮", this.languageComponent1);
                        return;
                    }
                }

                #region 在invinouttrans表中增加一条数据 箱单完成日期
                WarehouseFacade wfacade = new WarehouseFacade(base.DataProvider);
                DBDateTime      dbTime1 = FormatHelper.GetNowDBDateTime(this.DataProvider);
                foreach (PickDetail pickDetail in pickList)
                {
                    Pick          pick  = facade.GetPick(pickDetail.PickNo) as Pick;
                    InvInOutTrans trans = wfacade.CreateNewInvInOutTrans();
                    trans.CartonNO        = string.Empty;
                    trans.DqMCode         = pickDetail.DQMCode;
                    trans.FacCode         = string.Empty;
                    trans.FromFacCode     = string.Empty;
                    trans.FromStorageCode = string.Empty;
                    trans.InvNO           = pick.InvNo;//.InvNo;
                    trans.InvType         = pick.PickType;
                    trans.LotNo           = string.Empty;
                    trans.MaintainDate    = dbTime1.DBDate;
                    trans.MaintainTime    = dbTime1.DBTime;
                    trans.MaintainUser    = this.GetUserCode();
                    trans.MCode           = pickDetail.MCode;
                    trans.ProductionDate  = 0;
                    trans.Qty             = pickDetail.QTY;
                    trans.Serial          = 0;
                    trans.StorageAgeDate  = 0;
                    trans.StorageCode     = string.Empty;
                    trans.SupplierLotNo   = string.Empty;
                    trans.TransNO         = pickDetail.PickNo;
                    trans.TransType       = "OUT";
                    trans.Unit            = string.Empty;
                    trans.ProcessType     = "ClosePick";
                    wfacade.AddInvInOutTrans(trans);
                }

                #endregion

                string pickno       = FormatHelper.CleanString(this.txtPickNoQuery.Text);
                bool   isUpdatePick = facade.QueryPickDetailCount(pickno, PickDetail_STATUS.Status_ClosePick) == 0;
                if (isUpdatePick)
                {
                    facade.UpdatePickStatusByPickno(pickno, PickHeadStatus.PickHeadStatus_MakePackingList);
                }
                #region  创建发货箱单

                string carInvNo = string.Empty;
                object obj      = _WarehouseFacade.GetCartonInvoices(pickno);
                if (obj == null)
                {
                    CARTONINVOICES CartonH = _WarehouseFacade.CreateNewCartoninvoices();
                    object         objLot  = _WarehouseFacade.GetNewLotNO("K", dbTime.DBDate.ToString().Substring(2, 6).ToString());
                    Serialbook     serbook = _WarehouseFacade.CreateNewSerialbook();
                    if (objLot == null)
                    {
                        #region
                        CartonH.CARINVNO = "K" + dbTime.DBDate.ToString().Substring(2, 6).ToString() + "001";
                        CartonH.PICKNO   = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtPickNoQuery.Text));
                        CartonH.STATUS   = CartonInvoices_STATUS.Status_Release;
                        CartonH.CDATE    = dbTime.DBDate;
                        CartonH.CTIME    = dbTime.DBTime;
                        CartonH.CUSER    = this.GetUserCode();
                        CartonH.MDATE    = dbTime.DBDate;
                        CartonH.MTIME    = dbTime.DBTime;
                        CartonH.MUSER    = this.GetUserCode();
                        _WarehouseFacade.AddCartoninvoices(CartonH);

                        serbook.SNprefix  = "K" + dbTime.DBDate.ToString().Substring(2, 6).ToString();
                        serbook.MAXSerial = "2";
                        serbook.MUser     = this.GetUserCode();
                        serbook.MDate     = dbTime.DBDate;
                        serbook.MTime     = dbTime.DBTime;

                        _WarehouseFacade.AddSerialbook(serbook);
                        #endregion
                    }
                    else
                    {
                        #region
                        string MAXNO = (objLot as Serialbook).MAXSerial;
                        string SNNO  = (objLot as Serialbook).SNprefix;
                        CartonH.CARINVNO = SNNO + Convert.ToString(MAXNO).PadLeft(3, '0');
                        CartonH.PICKNO   = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtPickNoQuery.Text));
                        CartonH.STATUS   = CartonInvoices_STATUS.Status_Release;
                        CartonH.CDATE    = dbTime.DBDate;
                        CartonH.CTIME    = dbTime.DBTime;
                        CartonH.CUSER    = this.GetUserCode();
                        CartonH.MDATE    = dbTime.DBDate;
                        CartonH.MTIME    = dbTime.DBTime;
                        CartonH.MUSER    = this.GetUserCode();
                        _WarehouseFacade.AddCartoninvoices(CartonH);

                        //更新tblserialbook
                        serbook.SNprefix  = SNNO;
                        serbook.MAXSerial = Convert.ToString((int.Parse(MAXNO) + 1));
                        serbook.MUser     = this.GetUserCode();
                        serbook.MDate     = dbTime.DBDate;
                        serbook.MTime     = dbTime.DBTime;
                        _WarehouseFacade.UpdateSerialbook(serbook);
                        #endregion
                    }
                }
                # endregion
                this.DataProvider.CommitTransaction();
                WebInfoPublish.Publish(this, "确认欠料发货数量成功", this.languageComponent1);
            }
Example #11
0
        protected override void DeleteDomainObjects(ArrayList domainObjects)
        {
            if (_WarehouseFacade == null)
            {
                _WarehouseFacade = new WarehouseFacade(base.DataProvider);
            }
            if (_InventoryFacade == null)
            {
                _InventoryFacade = new InventoryFacade(this.DataProvider);
            }
            Pickdetailmaterial[] pickdetailmaterialList = ((Pickdetailmaterial[])domainObjects.ToArray(typeof(Pickdetailmaterial)));
            try
            {
                this.DataProvider.BeginTransaction();
                foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList)
                {
                    #region delete
                    //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。
                    PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail;
                    Pick       pickHead   = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick;
                    if (pickDetail == null || pickHead == null)
                    {
                        this.DataProvider.RollbackTransaction();
                        return;
                    }
                    if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick ||
                          pickDetail.Status == PickDetail_STATUS.Status_ClosePick))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成状态,才可以删除", this.languageComponent1);
                        return;
                    }
                    if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick ||
                          pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList))
                    {
                        this.DataProvider.RollbackTransaction();
                        WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单状态时,才可以删除", this.languageComponent1);
                        return;
                    }
                    //  2、删除已拣行明细后,该行状态变更为待拣料。
                    _WarehouseFacade.DeletePickdetailmaterial(pickdetailm);

                    pickDetail.Status = PickDetail_STATUS.Status_Pick;
                    //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。
                    int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno);
                    if (count == 0)
                    {
                        pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick;
                        _WarehouseFacade.UpdatePick(pickHead);
                        pickDetail.Status = PickDetail_STATUS.Status_WaitPick;
                    }
                    _WarehouseFacade.UpdatePickdetail(pickDetail);
                    #endregion
                }
                this.DataProvider.CommitTransaction();
                WebInfoPublish.Publish(this, "删除成功", this.languageComponent1);
            }
            catch (Exception ex)
            {
                this.DataProvider.RollbackTransaction();
                WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1);
            }
        }
Example #12
0
 private PickDetailModel mapToModel(PickDetail pickD)
 {
     return(Mapper.Map <PickDetail, PickDetailModel>(pickD));
 }