Example #1
0
        //检查此Rcard所属栈板下Rcard在同一垛位下
        private bool CheckRcardIsInTheSameStack(string pallet, string stackCode)
        {
            InventoryFacade   inventoryFacade   = new InventoryFacade(this.DataProvider);
            PackageFacade     packageFacade     = new PackageFacade(this.DataProvider);
            DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider);

            object[] pallet2RCardList = packageFacade.GetPallet2RCardListByPallet(pallet);
            if (pallet2RCardList == null)
            {
                return(true);
            }

            for (int i = 0; i < pallet2RCardList.Length; i++)
            {
                string           cartonCode       = string.Empty;
                SimulationReport simulationReport = (SimulationReport)dataCollectFacade.GetLastSimulationReport(((Pallet2RCard)pallet2RCardList[i]).RCard);
                if (simulationReport != null)
                {
                    cartonCode = simulationReport.CartonCode;
                }

                object[] stack2RcardList = inventoryFacade.QueryStacktoRcardByRcardAndCarton(((Pallet2RCard)pallet2RCardList[i]).RCard, cartonCode);
                if (stack2RcardList != null && !((StackToRcard)stack2RcardList[0]).StackCode.Equals(stackCode))
                {
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_RCARD_IS_NOT_INSAME_STACK:" + ((StackToRcard)stack2RcardList[0]).StackCode));
                    return(false);
                }
            }

            return(true);
        }
Example #2
0
        private void txtUseNPallet_Leave(object sender, EventArgs e)
        {
            if (this.txtUseNPallet.Value.Trim().Length != 0)
            {
                PackageFacade objFacade = new PackageFacade(this.DataProvider);
                object        pallet    = objFacade.GetPallet(this.txtUseNPallet.Value);

                if (pallet != null)
                {
                    //该栈板已存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLETNO_IS_EXIT"));
                    txtUseNPallet.TextFocus(true, true);
                }

                InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider);
                object[]        stackToRcardS   = inventoryFacade.GetRcardToStackPallet(this.ucLabelEditStock.Value.Trim(), this.txtUseNPallet.Value, "");

                if (stackToRcardS != null)
                {
                    //该栈板已经在目标垛位中 垛位=
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLETNO_IN_TRA_STACK=" + ((RcardToStackPallet)stackToRcardS[0]).StackCode));
                    txtUseNPallet.TextFocus(true, true);
                }
            }
        }
Example #3
0
 private void FLotCollectionCartonForLot_Load(object sender, EventArgs e)
 {
     //this._FunctionName = this.Text;
     //ucMessage.AddEx(this._FunctionName, "", new UserControl.Message("$CS_Please_Input_CartonNo"), false);
     //this.ucLabelCartonNo.TextFocus(false, true);
     m_DataCollectFacade = new DataCollectFacade(this.DataProvider);
     m_PackageFacade     = new PackageFacade(this.DataProvider);
     m_ItemFacade        = new ItemFacade(this.DataProvider);
     m_ItemLotFacade     = new ItemLotFacade(this.DataProvider);
     this.InitPageLanguage();
 }
Example #4
0
        //private void RefreshCartonNumber()
        //{
        //    string cartonNo = FormatHelper.CleanString(this.ucLabelCartonNo.Value.Trim().ToUpper());
        //    CARTONINFO objCartonInfo = (new Package.PackageFacade(DataProvider)).GetCARTONINFO(cartonNo) as CARTONINFO;
        //    //Refresh CartonCapacity and Lot Capacity
        //    if (objCartonInfo != null)
        //    {
        //        this.ucLabelCartonCollected.Value = objCartonInfo.COLLECTED.ToString();
        //    }
        //    else
        //    {
        //        this.ucLabelCartonCollected.Value = "";
        //    }

        //    //Check
        //    if (objCartonInfo != null && objCartonInfo.CAPACITY == objCartonInfo.COLLECTED)
        //    {
        //        ucMessage.AddEx(this._FunctionName, "包装箱号: " + this.ucLabelCartonNo.Value, new UserControl.Message(MessageType.Normal, "$CARTON_ALREADY_FULL_PlEASE_CHANGE"), false);
        //        this.m_FlowControl = 1;
        //        this.SetInputMessageByFlowControl();
        //        return;
        //    }

        //    this.m_FlowControl = 3;
        //    this.SetInputMessageByFlowControl();
        //    //End Add
        //}

        public void GetData(string cartonNo)
        {
            PackageFacade pf            = new PackageFacade(DataProvider);
            CARTONINFO    objCartonInfo = pf.GetCARTONINFO(cartonNo) as CARTONINFO;

            if (objCartonInfo != null)
            {
                this.cartonCollection           = new CartonCollection();
                this.cartonCollection.CAPACITY  = objCartonInfo.CAPACITY;
                this.cartonCollection.COLLECTED = objCartonInfo.COLLECTED;

                object[] objs = pf.GetCarton2RCARDByCartonNO(cartonNo);
                if (objs != null)
                {
                    this.carton2RCARD = new Carton2RCARD[objs.Length];
                    for (int i = 0; i < objs.Length; i++)
                    {
                        this.carton2RCARD[i] = (Carton2RCARD)objs[i];
                    }
                }
                if (this.carton2RCARD != null)
                {
                    this.cartonCollection.MOCode = this.carton2RCARD[0].MOCode;
                    object obj = pf.GetItemCodeByMOCode(this.carton2RCARD[0].MOCode);
                    if (obj != null)
                    {
                        this.cartonCollection.ItemCode        = ((CartonCollection)obj).ItemCode;
                        this.cartonCollection.ItemDescription = ((CartonCollection)obj).ItemDescription;
                        ItemFacade   itemFacade   = new ItemFacade(this.DataProvider);
                        Item2SNCheck item2SNCheck = (Item2SNCheck)itemFacade.GetItem2SNCheck(((CartonCollection)obj).ItemCode, ItemCheckType.ItemCheckType_SERIAL);
                        if (item2SNCheck != null)
                        {
                            if (item2SNCheck.SNLength > 0)
                            {
                                chkCardLen.Checked = true;
                                chkCardLen.Value   = item2SNCheck.SNLength.ToString();
                            }

                            if (!string.IsNullOrEmpty(item2SNCheck.SNPrefix))
                            {
                                chkCardFChar.Checked = true;
                                chkCardFChar.Value   = item2SNCheck.SNPrefix;
                            }
                        }
                    }
                }
            }
        }
Example #5
0
        private bool checkCarton(string cartonNo)
        {
            #region Carton Length Check
            if (chkCartonLen.Checked && chkCartonLen.Value.Trim().Length > 0)
            {
                if (cartonNo.Length != Convert.ToInt32(chkCartonLen.Value.Replace("-", "")))
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_CARTON_NO: " + this.ucLabelCartonNo.Value, new UserControl.Message(MessageType.Error, "$CS_CARTON_NO_LEN_CHECK_FAIL"), false);
                    this.m_FlowControl = 1;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }
            #endregion

            #region Carton First Char Check
            if (chkCartonFChar.Checked && chkCartonFChar.Value.Trim().Length > 0)
            {
                if (cartonNo.IndexOf(chkCartonFChar.Value.Trim()) != 0)
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_CARTON_NO: " + this.ucLabelCartonNo.Value, new UserControl.Message(MessageType.Error, "$CS_CARTON_NO_FCHAR_CHECK_FAIL"), false);
                    this.m_FlowControl = 1;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }

            #endregion

            #region 判断是否箱中已满
            PackageFacade pf            = new PackageFacade(DataProvider);
            CARTONINFO    objCartonInfo = pf.GetCARTONINFO(cartonNo) as CARTONINFO;
            if (objCartonInfo != null)
            {
                if (objCartonInfo.CAPACITY == objCartonInfo.COLLECTED)
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_CARTON_NO: " + this.ucLabelCartonNo.Value, new UserControl.Message(MessageType.Error, "$CARTON_ALREADY_FILL_OUT"), false);
                    this.m_FlowControl = 1;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }
            #endregion


            return(true);
        }
Example #6
0
        private void savePackingCheck(bool IsCheckProduct, bool IsUpdaterProdct)
        {
            //add by hiro 08/09/27
            PackageFacade _Packfacade     = new PackageFacade(DataProvider);
            PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();

            newPackingCheck.Rcard = m_rcard;
            DBDateTime dbDateTime;

            dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider);
            newPackingCheck.CheckAccessory = FormatHelper.TRUE_STRING;
            if (IsCheckProduct)
            {
                newPackingCheck.CheckProductCode = FormatHelper.TRUE_STRING;
            }
            else
            {
                newPackingCheck.CheckProductCode = FormatHelper.FALSE_STRING;
            }
            newPackingCheck.MUSER       = ApplicationService.Current().UserCode;
            newPackingCheck.MDATE       = dbDateTime.DBDate;
            newPackingCheck.MTIME       = dbDateTime.DBTime;
            newPackingCheck.EATTRIBUTE1 = " ";
            object objGet = _Packfacade.GetPACKINGCHK(m_rcard);

            if (objGet != null)
            {
                if (((PACKINGCHK)objGet).EATTRIBUTE1.ToString().Trim() != string.Empty)
                {
                    newPackingCheck.EATTRIBUTE1 = ((PACKINGCHK)objGet).EATTRIBUTE1.ToString();
                }
                if (!IsUpdaterProdct)
                {
                    newPackingCheck.CheckProductCode = ((PACKINGCHK)objGet).CheckProductCode.ToString();
                }
                _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                _Packfacade.AddPACKINGCHK(newPackingCheck);
            }
            else
            {
                _Packfacade.AddPACKINGCHK(newPackingCheck);
            }
            //end by hiro
        }
Example #7
0
        /// <summary>
        /// Populates the variable cache with specific package properties.
        /// </summary>
        /// <param name="facade">The package facade with properties to cache.</param>
        /// <param name="variableCache">The property cache.</param>
        private static void PopulatePackageVariableCache(PackageFacade facade, IDictionary <string, string> variableCache)
        {
            var package = facade.PackageSymbol;
            var id      = package.Id.Id;

            variableCache.Add(String.Concat("packageDescription.", id), package.Description ?? String.Empty);
            variableCache.Add(String.Concat("packageName.", id), package.DisplayName ?? String.Empty);
            variableCache.Add(String.Concat("packageVersion.", id), package.Version);

            if (facade.SpecificPackageSymbol is WixBundleMsiPackageSymbol msiPackage)
            {
                variableCache.Add(String.Concat("packageLanguage.", id), msiPackage.ProductLanguage.ToString());
                variableCache.Add(String.Concat("packageManufacturer.", id), msiPackage.Manufacturer ?? String.Empty);
            }
            else
            {
                variableCache.Add(String.Concat("packageLanguage.", id), String.Empty);
                variableCache.Add(String.Concat("packageManufacturer.", id), String.Empty);
            }
        }
Example #8
0
        private bool InputRcard(string rcard, string companyCode)
        {
            InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider);

            //转换产品序列号为原始序列号
            DataCollect.DataCollectFacade dcf = new BenQGuru.eMES.DataCollect.DataCollectFacade(DataProvider);
            string sourceRCard = dcf.GetSourceCard(rcard.Trim().ToUpper(), string.Empty);

            ////检查此垛位是否存在相关产品
            //
            object[] objRcardToStackPalletList = inventoryFacade.GetRcardToStackPallet("", "", sourceRCard);

            if (objRcardToStackPalletList == null)
            {
                //Message:垛位不存在相关产品
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_RCARD_NOT_EXIST_IN_STACK"));
                return(false);
            }

            PackageFacade pf             = new PackageFacade(this.DataProvider);
            object        objPalletRcrad = pf.GetPallet2RCardByRCard(sourceRCard);

            if (objPalletRcrad != null)
            {
                //序列号存在栈板,请以栈板号来进行公司变更
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_PALLET_NOT_CHANGE_COMPANY"));
                return(false);
            }

            ////变更Company
            //
            inventoryFacade.UpdateCompany("", "", sourceRCard, companyCode, ApplicationService.Current().LoginInfo.UserCode);

            ////Add To Grid
            //
            this.LoadDataSource(objRcardToStackPalletList);

            return(true);
        }
Example #9
0
        //对单个的ID进行对立
        private Messages AddSingleIDIntoCartonAndTry(string rcard, Messages messages, IAction action, ActionOnLineHelper actionOnLineHelper)
        {
            //转换成起始序列号
            string sourceCard = _face.GetSourceCard(rcard.Trim().ToUpper(), string.Empty);
            //end

            Messages newMessages = actionOnLineHelper.GetIDInfo(sourceCard);
            string   cartonNo    = FormatHelper.CleanString(this.ucLabelCartonNo.Value);

            ProductInfo product = (ProductInfo)newMessages.GetData().Values[0];

            if (product.LastSimulation == null)
            {
                newMessages.Add(new UserControl.Message(new Exception("$Error_LastSimulation_IsNull!")));
                return(newMessages);
            }
            if (newMessages.IsSuccess())
            {
                CartonPackEventArgs cartonPackEventArgs = new CartonPackEventArgs(ActionType.DataCollectAction_Carton,
                                                                                  sourceCard, ApplicationService.Current().UserCode,
                                                                                  ApplicationService.Current().ResourceCode,
                                                                                  FormatHelper.CleanString(""),
                                                                                  cartonNo,
                                                                                  product);

                newMessages.AddMessages(action.Execute(cartonPackEventArgs));
            }
            if (newMessages.IsSuccess())
            {
                PackageFacade packageFacade = new PackageFacade(this.DataProvider);
                packageFacade.addCarton2RCARD(cartonNo, sourceCard, ApplicationService.Current().UserCode, product.LastSimulation.MOCode);
                //记log
                packageFacade.addCarton2RCARDLog(cartonNo, sourceCard, ApplicationService.Current().UserCode);
            }

            return(newMessages);
        }
Example #10
0
//#region DependencyExtension
        /// <summary>
        /// Imports authored dependency providers for each package in the manifest,
        /// and generates dependency providers for certain package types that do not
        /// have a provider defined.
        /// </summary>
        /// <param name="bundle">The <see cref="Output"/> object for the bundle.</param>
        /// <param name="facades">An indexed collection of chained packages.</param>
        private void ProcessDependencyProviders(Output bundle, IDictionary <string, PackageFacade> facades)
        {
            // First import any authored dependencies. These may merge with imported provides from MSI packages.
            Table wixDependencyProviderTable = bundle.Tables["WixDependencyProvider"];

            if (null != wixDependencyProviderTable && 0 < wixDependencyProviderTable.Rows.Count)
            {
                // Add package information for each dependency provider authored into the manifest.
                foreach (Row wixDependencyProviderRow in wixDependencyProviderTable.Rows)
                {
                    string packageId = (string)wixDependencyProviderRow[1];

                    PackageFacade facade = null;
                    if (facades.TryGetValue(packageId, out facade))
                    {
                        ProvidesDependency dependency = new ProvidesDependency(wixDependencyProviderRow);

                        if (String.IsNullOrEmpty(dependency.Key))
                        {
                            switch (facade.Package.Type)
                            {
                            // The WixDependencyExtension allows an empty Key for MSIs and MSPs.
                            case WixBundlePackageType.Msi:
                                dependency.Key = facade.MsiPackage.ProductCode;
                                break;

                            case WixBundlePackageType.Msp:
                                dependency.Key = facade.MspPackage.PatchCode;
                                break;
                            }
                        }

                        if (String.IsNullOrEmpty(dependency.Version))
                        {
                            dependency.Version = facade.Package.Version;
                        }

                        // If the version is still missing, a version could not be harvested from the package and was not authored.
                        if (String.IsNullOrEmpty(dependency.Version))
                        {
                            Messaging.Instance.OnMessage(WixErrors.MissingDependencyVersion(facade.Package.WixChainItemId));
                        }

                        if (String.IsNullOrEmpty(dependency.DisplayName))
                        {
                            dependency.DisplayName = facade.Package.DisplayName;
                        }

                        if (!facade.Provides.Merge(dependency))
                        {
                            Messaging.Instance.OnMessage(WixErrors.DuplicateProviderDependencyKey(dependency.Key, facade.Package.WixChainItemId));
                        }
                    }
                }
            }

            // Generate providers for MSI packages that still do not have providers.
            foreach (PackageFacade facade in facades.Values)
            {
                string key = null;

                if (WixBundlePackageType.Msi == facade.Package.Type && 0 == facade.Provides.Count)
                {
                    key = facade.MsiPackage.ProductCode;
                }
                else if (WixBundlePackageType.Msp == facade.Package.Type && 0 == facade.Provides.Count)
                {
                    key = facade.MspPackage.PatchCode;
                }

                if (!String.IsNullOrEmpty(key))
                {
                    ProvidesDependency dependency = new ProvidesDependency(key, facade.Package.Version, facade.Package.DisplayName, 0);

                    if (!facade.Provides.Merge(dependency))
                    {
                        Messaging.Instance.OnMessage(WixErrors.DuplicateProviderDependencyKey(dependency.Key, facade.Package.WixChainItemId));
                    }
                }
            }
        }
Example #11
0
        public override Messages Action(object act)
        {
            Messages msg = new Messages();

            BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider domainProvider = null;


            if (act == null)
            {
                return(msg);
            }

            if ((act as IDCTClient).DBConnection != null)
            {
                domainProvider = (act as IDCTClient).DBConnection as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
            }
            else
            {
                domainProvider = Common.DomainDataProvider.DomainDataProviderManager.DomainDataProvider()
                                 as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
                (act as IDCTClient).DBConnection = domainProvider;
            }

            DataCollectFacade db = new DataCollectFacade(domainProvider);

            object[] objSimulation = db.GetSimulationFromCarton(strCarton);


            if (checkCompare)
            {
                if (objSimulation == null)
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPAREAPPENDIX_NOTSUCCESS"));
                    msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_WRAPPER"));
                    this.Status = ActionStatus.PrepareData;
                    return(msg);
                }
                else
                {
                    object objSimulationRcrd = objSimulation[0];
                    //if (((Simulation)objSimulationRcrd).ItemCode.ToString().ToUpper() != act.ToString().ToUpper())
                    if (((Simulation)objSimulationRcrd).RunningCard.ToUpper().IndexOf(act.ToString().ToUpper()) != 0)
                    {
                        msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPAREAPPENDIX_NOTSUCCESS"));
                        msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_WRAPPER"));
                        this.Status = ActionStatus.PrepareData;
                        return(msg);
                    }
                    else
                    {
                        msg.Add(new UserControl.Message(MessageType.Success, "$CS_COMPAREAPPENDIX_SUCCESS"));
                        msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_COMMODITY"));
                        DBDateTime dbDateTime;
                        dbDateTime = FormatHelper.GetNowDBDateTime(domainProvider);
                        PackageFacade _Packfacade     = new PackageFacade(domainProvider);
                        PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();
                        newPackingCheck.Rcard            = ((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper();
                        newPackingCheck.CheckAccessory   = FormatHelper.TRUE_STRING;
                        newPackingCheck.CheckProductCode = FormatHelper.FALSE_STRING;
                        newPackingCheck.MUSER            = (act as IDCTClient).LoginedUser;
                        newPackingCheck.MDATE            = dbDateTime.DBDate;
                        newPackingCheck.MTIME            = dbDateTime.DBTime;
                        newPackingCheck.EATTRIBUTE1      = " ";
                        object objGet = _Packfacade.GetPACKINGCHK(((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper());
                        if (objGet != null)
                        {
                            newPackingCheck.CheckProductCode = ((PACKINGCHK)objGet).CheckProductCode.Trim();
                            newPackingCheck.EATTRIBUTE1      = ((PACKINGCHK)objGet).EATTRIBUTE1;
                            _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                            _Packfacade.AddPACKINGCHK(newPackingCheck);
                        }
                        else
                        {
                            _Packfacade.AddPACKINGCHK(newPackingCheck);
                        }
                        this.Status  = ActionStatus.PrepareData;
                        checkCompare = false;
                        return(msg);
                    }
                }
            }
            else
            {
                if (objSimulation == null)
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG"));
                    msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_COMMODITY"));
                    this.Status = ActionStatus.PrepareData;
                    return(msg);
                }
                else
                {
                    object     objSimulationRcrd = objSimulation[0];
                    ItemFacade itemfacade        = new ItemFacade(domainProvider);
                    object     objitem           = itemfacade.GetItem(((Simulation)objSimulation[0]).ItemCode.Trim().ToUpper(), GlobalVariables.CurrentOrganizations.First().OrganizationID);
                    if (objitem == null)
                    {
                        msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG"));
                        msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_COMMODITY"));
                        this.Status = ActionStatus.PrepareData;
                        return(msg);
                    }
                    else
                    {
                        if (((Item)objitem).ItemProductCode.ToUpper().Trim() == act.ToString().ToUpper())
                        {
                            base.Action(act);
                            msg.Add(new UserControl.Message(MessageType.Success, "$CS_COMPARECOMMODITY_ISSUCCESS"));
                            DBDateTime dbDateTime;
                            dbDateTime = FormatHelper.GetNowDBDateTime(domainProvider);
                            PackageFacade _Packfacade     = new PackageFacade(domainProvider);
                            PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();
                            newPackingCheck.Rcard            = ((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper();
                            newPackingCheck.CheckAccessory   = FormatHelper.TRUE_STRING;
                            newPackingCheck.CheckProductCode = FormatHelper.TRUE_STRING;
                            newPackingCheck.MUSER            = (act as IDCTClient).LoginedUser;
                            newPackingCheck.MDATE            = dbDateTime.DBDate;
                            newPackingCheck.MTIME            = dbDateTime.DBTime;
                            newPackingCheck.EATTRIBUTE1      = " ";
                            object objGet = _Packfacade.GetPACKINGCHK(((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper());
                            if (objGet != null)
                            {
                                newPackingCheck.EATTRIBUTE1 = ((PACKINGCHK)objGet).EATTRIBUTE1;
                                _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                                _Packfacade.AddPACKINGCHK(newPackingCheck);
                            }
                            else
                            {
                                _Packfacade.AddPACKINGCHK(newPackingCheck);
                            }
                            this.ObjectState = null;
                            //this.Status = ActionStatus.PrepareData;
                            strCarton    = string.Empty;
                            checkCompare = true;
                            checkCycle   = true;
                            return(msg);
                        }
                        else
                        {
                            msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG"));
                            msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_COMMODITY"));
                            this.Status = ActionStatus.PrepareData;
                            return(msg);
                        }
                    }
                }
            }
        }
Example #12
0
        public void SetData(string palletCode, bool autoPrint)
        {
            this.m_AutoPrint = autoPrint;

            this.InitTable();

            PackageFacade packageFacade = new PackageFacade(this.DataProvider);
            ItemFacade    itemFacade    = new ItemFacade(this.DataProvider);

            //Get head data
            DBDateTime dbDateTime;

            dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider);
            string printDate = FormatHelper.ToDateString(dbDateTime.DBDate, "/");

            Pallet pallet = (Pallet)packageFacade.GetPallet(palletCode);

            if (pallet == null)
            {
                return;
            }

            //string moCode = pallet.MOCode;
            string ssCode          = pallet.SSCode;
            string itemCode        = pallet.ItemCode;
            string itemDesc        = "";
            string itemMachineType = "";
            string itemModelGroup  = "";

            Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterial(itemCode, pallet.OrganizationID);
            if (material != null)
            {
                itemDesc        = material.MaterialDescription == null ? "" : material.MaterialDescription;
                itemMachineType = material.MaterialMachineType == null ? "" : material.MaterialMachineType;
                itemModelGroup  = material.MaterialModelGroup == null ? "" : material.MaterialModelGroup;
            }


            //Get grid data

            object[] palletDetail = packageFacade.GetPalletDetailInfo(palletCode);

            int seq = 0;

            if (palletDetail != null)
            {
                foreach (SimulationReport detail in palletDetail)
                {
                    seq++;

                    DataRow row = tblData.NewRow();
                    row["Seq"]        = seq;
                    row["LotNo"]      = detail.LOTNO;
                    row["RCard"]      = detail.RunningCard;
                    row["CartonCode"] = detail.CartonCode;
                    row["MOCode"]     = detail.MOCode;

                    tblData.Rows.Add(row);
                }
            }

            string appPath = Application.StartupPath + "\\PackPalletPrint.rdlc";

            this.ReportViewerPallet.LocalReport.DataSources.Clear();
            this.ReportViewerPallet.Reset();
            this.ReportViewerPallet.LocalReport.ReportPath = appPath;
            this.ReportViewerPallet.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSetPalletPrint_PalletDetail", tblData));

            ReportParameter param1 = new ReportParameter("PalletCode", new string[] { palletCode });
            ReportParameter param2 = new ReportParameter("PrintDate", new string[] { printDate });
            ReportParameter param3 = new ReportParameter("ItemCode", new string[] { itemCode });
            ReportParameter param4 = new ReportParameter("ItemDesc", new string[] { itemDesc });
            //ReportParameter param5 = new ReportParameter("MOCode", new string[] { moCode });
            ReportParameter param6 = new ReportParameter("SSCode", new string[] { ssCode });
            ReportParameter param7 = new ReportParameter("MachineCode", new string[] { itemMachineType });
            ReportParameter param8 = new ReportParameter("ScreenCode", new string[] { itemModelGroup });

            this.ReportViewerPallet.LocalReport.SetParameters(new ReportParameter[] { param1, param2, param3, param4, param6, param7, param8 });

            this.ReportViewerPallet.LocalReport.Refresh();
        }
Example #13
0
        private bool CartonPack()
        {
            if (this.ucLabelRCardForCarton.Value.Trim() == "")
            {
                this.SetInputMessageByFlowControl();
                return(false);
            }
            string rcard = FormatHelper.CleanString(this.ucLabelRCardForCarton.Value.Trim().ToUpper());

            //转换成起始序列号
            if (_face == null)
            {
                _face = new DataCollectFacade(this.DataProvider);
            }
            string sourceCard = _face.GetSourceCard(rcard, string.Empty);

            //end

            if (this.ucLabelCartonNo.Value.Trim() == "")
            {
                m_FlowControl = 1;
                this.SetInputMessageByFlowControl();
                return(false);
            }

            #region RCard Length Check
            if (chkCardLen.Checked && chkCardLen.Value.Trim().Length > 0)
            {
                if (rcard.Length != Convert.ToInt32(chkCardLen.Value.Replace("-", "")))
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_RCARD: " + this.ucLabelRCardForCarton.Value, new UserControl.Message(MessageType.Error, "$CS_CARD_NO_LEN_CHECK_FAIL"), false);
                    this.m_FlowControl = 3;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }
            #endregion
            #region RCard First Char Check
            if (chkCardFChar.Checked && chkCardFChar.Value.Trim().Length > 0)
            {
                if (rcard.IndexOf(chkCardFChar.Value.Trim()) != 0)
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_RCARD: " + this.ucLabelRCardForCarton.Value, new UserControl.Message(MessageType.Error, "$CS_CARD_NO_FCHAR_CHECK_FAIL"), false);
                    this.m_FlowControl = 3;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }
            #endregion

            ucMessage.AddWithoutEnter("<<");
            ucMessage.AddBoldText(ucLabelRCardForCarton.Value.Trim());

            if (!checkRcard(rcard, sourceCard))
            {
                this.m_FlowControl = 3;
                this.SetInputMessageByFlowControl();
                return(false);
            }

            Simulation objSimulation = _face.GetSimulation(sourceCard.Trim().ToUpper()) as Simulation;
            string     lastAction    = objSimulation.LastAction.Trim();

            ItemFacade itemFacade = new ItemFacade(DataProvider);
            Item       item       = itemFacade.GetItem((objSimulation as Simulation).ItemCode.ToUpper().Trim(), GlobalVariables.CurrentOrganizations.First().OrganizationID) as Item;
            string     newMOCode  = objSimulation.MOCode.Trim().ToUpper();

            PackageFacade pf = new PackageFacade(DataProvider);
            //check产品序列号是否重复包装
            //object rcardobj = pf.GetCarton2RCARD("", sourceCard.Trim().ToUpper());
            object rcardobj = pf.GetCarton2RcardByRcard(sourceCard.Trim().ToUpper());
            if (rcardobj != null)
            {
                ucMessage.AddEx(this._FunctionName, "$CS_CARTON_NO: " + ((Carton2RCARD)rcardobj).CartonCode, new UserControl.Message(MessageType.Error, "$CS_CARD_HAS_PACKED"), false);
                this.m_FlowControl = 3;
                this.SetInputMessageByFlowControl();
                return(false);
            }

            string cartonNo = FormatHelper.CleanString(ucLabelCartonNo.Value.Trim().ToUpper());

            #region OQC检查
            //modified by lisa@2012-8-29
            //1,序列号是维修回流过来的,即属于未判定的LOT并且不属于任何小箱,应该装在之前的箱中。
            OQCFacade _OQCFacade     = new OQCFacade(this.DataProvider);
            object    lot2Card       = _OQCFacade.GetOQCLot2Card(sourceCard.Trim().ToUpper(), newMOCode, "", "");
            Boolean   blnCheckCarton = true;
            if (lot2Card != null)
            {
                OQCLot oqcLot = _OQCFacade.GetOQCLot((lot2Card as OQCLot2Card).LOTNO, OQCFacade.Lot_Sequence_Default) as OQCLot;
                if (!(oqcLot.LOTStatus == OQCLotStatus.OQCLotStatus_Reject || oqcLot.LOTStatus == OQCLotStatus.OQCLotStatus_Rejecting ||
                      oqcLot.LOTStatus == OQCLotStatus.OQCLotStatus_Pass || oqcLot.LOTStatus == OQCLotStatus.OQCLotStatus_Passing))
                {
                    if ((!String.IsNullOrEmpty(((OQCLot2Card)lot2Card).EAttribute1)) && cartonNo != ((OQCLot2Card)lot2Card).EAttribute1.ToString())
                    {
                        ucMessage.AddEx(this._FunctionName, " ", new UserControl.Message(MessageType.Error, "$RCard:" + sourceCard + "$ShouedPackInCarton:" + ((OQCLot2Card)lot2Card).EAttribute1.ToString()), false);
                        this.m_FlowControl = 3;
                        this.SetInputMessageByFlowControl();
                        return(false);
                    }

                    if ((!String.IsNullOrEmpty(((OQCLot2Card)lot2Card).EAttribute1)) && cartonNo == ((OQCLot2Card)lot2Card).EAttribute1.ToString())
                    {
                        blnCheckCarton = false;
                    }
                }
            }

            //2,产品序列号是新的,或者是返工回来的,则不能放入已归属了Lot的小箱
            if (blnCheckCarton)
            {
                object objLot2Carton = _OQCFacade.GetLot2CartonByCartonNo(cartonNo);
                if (objLot2Carton != null)
                {
                    ucMessage.AddEx(this._FunctionName, "$CS_CARTON_NO: " + this.ucLabelCartonNo.Value, new UserControl.Message(MessageType.Error, "$CARTON_ALREADY_OQC"), false);
                    this.m_FlowControl = 1;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
            }
            #endregion


            #region check箱
            if (!checkCarton(cartonNo))
            {
                return(false);
            }


            //check一个箱子只能放一个类型的产品,并且只能放一个工单的产品
            object[] objects = pf.GetCarton2RCARDByCartonNO(cartonNo);
            if (objects != null)
            {
                string oldMOCode = ((Carton2RCARD)objects[0]).MOCode.Trim().ToUpper();
                if (newMOCode != oldMOCode)
                {
                    ucMessage.AddEx(this._FunctionName, "", new UserControl.Message(MessageType.Error, "$OneCarton_OneMoCode"), true);
                    this.m_FlowControl = 3;
                    this.SetInputMessageByFlowControl();
                    return(false);
                }
                object obj = pf.GetItemCodeByMOCode(oldMOCode);
                if (obj != null)
                {
                    if (item.ItemCode != ((CartonCollection)obj).ItemCode)
                    {
                        ucMessage.AddEx(this._FunctionName, "", new UserControl.Message(MessageType.Error, "$OneCarton_OneProduct"), true);
                        this.m_FlowControl = 3;
                        this.SetInputMessageByFlowControl();
                        return(false);
                    }
                }
            }
            #endregion
            // 包装动作
            this.AfterToSave();
            return(true);
        }
Example #14
0
        private bool InputPallet(string palletCode)
        {
            ////Check 栈板是否存在
            //
            PackageFacade objFacade = new PackageFacade(this.DataProvider);
            object        pallet    = objFacade.GetPallet(palletCode);

            if (pallet == null)
            {
                //Message:该栈板不存在
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_PALLETNO_IS_NOT_EXIT"));
                return(false);
            }


            InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider);

            ////使用原栈板
            //
            if (this.rdoUseOPallet.Checked)
            {
                ////Check 栈板在目标垛位中已经存在
                //
                object[] rcardToStackPallet = inventoryFacade.GetRcardToStackPallet(this.ucLabelEditStock.Value, palletCode, "");

                if (rcardToStackPallet != null)
                {
                    //Message:栈板在目标垛位中已经存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLET_IS_EXIST_IN_TAR_STACK"));
                    return(false);
                }

                ////获取源栈板的垛位资料
                //
                object[] rcardToStackPalletList = inventoryFacade.GetRcardToStackPallet("", palletCode, "");

                if (rcardToStackPalletList == null)
                {
                    //Message:源栈板对应的垛位信息不存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLET_IS_NOT_EXIST_IN_ORI_STACK"));
                    return(false);
                }

                if (inventoryFacade.CheckStackIsOnlyAllowOneItem(ucLabelEditStock.Value.ToString()) &&
                    CheckStackItemError(this.ucLabelEditStock.Value.Trim(), this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                        ((RcardToStackPallet)rcardToStackPalletList[0]).ItemCode))
                {
                    //Message:目标垛位的物料和当前物料不一致
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_ITEM_DIFF"));
                    return(false);
                }

                ////根据源栈板的Rcard更新StackToRcard
                //
                inventoryFacade.UpdatePalletStackByWholePallet(rcardToStackPalletList,
                                                               this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                                               this.ucLabelEditStock.Value.Trim(),
                                                               ApplicationService.Current().LoginInfo.UserCode);

                //Load Grid
                this.LoadGrid(rcardToStackPalletList, this.ucLabelEditStock.Value.Trim(), palletCode);
            }

            ////使用目标垛位栈板
            //
            if (this.rdoUseTPallet.Checked)
            {
                if (palletCode.Equals(this.txtUseTPallet.Value.Trim()))
                {
                    //Message:源栈板和目标栈板相同
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLETNO_SAME_AS_TARPALLET"));
                    return(false);
                }

                ////check目标垛位栈板的,产品,公司别,产品档次,是否和序列号的栈板一致
                //
                //获取源栈板信息
                object[] objOriStackToRcardList = inventoryFacade.GetStackToRcardInfoByPallet(palletCode);
                object[] objTarStackToRcardList = inventoryFacade.GetStackToRcardInfoByPallet(this.txtUseTPallet.Value.Trim());

                if (objOriStackToRcardList == null)
                {
                    //Message:源栈板对应的垛位信息不存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLET_IS_NOT_EXIST_IN_ORI_STACK"));
                    return(false);
                }

                if (inventoryFacade.CheckStackIsOnlyAllowOneItem(ucLabelEditStock.Value.ToString()) &&
                    CheckStackItemError(this.ucLabelEditStock.Value.Trim(), this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                        ((StackToRcard)objOriStackToRcardList[0]).ItemCode))
                {
                    //Message:目标垛位的物料和当前物料不一致
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_ITEM_DIFF"));
                    return(false);
                }

                string       strErrorMessage = string.Empty;
                StackToRcard objOri          = (StackToRcard)objOriStackToRcardList[0];
                StackToRcard objTar          = (StackToRcard)objTarStackToRcardList[0];
                if (objOri.ItemCode != objTar.ItemCode)
                {
                    strErrorMessage = strErrorMessage + "itemcode";
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_ITEM_NOT_SAME_IN_PALLET_TWO $CS_TARGET=" + objTar.ItemCode + " $CS_ORIGINAL=" + objOri.ItemCode));
                }

                if (objOri.Company != objTar.Company)
                {
                    strErrorMessage = strErrorMessage + "companycode";
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_COMPANY_NOT_SAME_IN_PALLET_TWO $CS_TARGET=" + objTar.Company + " $CS_ORIGINAL=" + objOri.Company));
                }

                if (strErrorMessage != string.Empty)
                {
                    return(false);
                }

                ////获取源栈板的垛位资料
                //
                object[] rcardToStackPallet = inventoryFacade.GetRcardToStackPallet("", palletCode, "");

                ////把原栈板更新为目标栈板
                //
                inventoryFacade.UpdateOriPalletStackToTargetPallet(rcardToStackPallet,
                                                                   this.txtUseTPallet.Value.Trim(),
                                                                   this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                                                   this.ucLabelEditStock.Value.Trim(),
                                                                   ApplicationService.Current().LoginInfo.UserCode);

                //Load Grid
                this.LoadGrid(rcardToStackPallet, this.ucLabelEditStock.Value.Trim(), this.txtUseTPallet.Value.Trim());
            }

            ////使用新栈板
            //
            if (this.rdoUseNPallet.Checked)
            {
                if (palletCode.Equals(this.txtUseNPallet.Value.Trim()))
                {
                    //Message:源栈板和目标栈板相同
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLETNO_SAME_AS_TARPALLET"));
                    return(false);
                }


                ////获取源栈板的垛位资料
                //
                object[] rcardToStackPallet = inventoryFacade.GetRcardToStackPallet("", palletCode, "");

                if (rcardToStackPallet == null)
                {
                    //Message:源栈板对应的垛位信息不存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PALLET_IS_NOT_EXIST_IN_ORI_STACK"));
                    return(false);
                }

                if (inventoryFacade.CheckStackIsOnlyAllowOneItem(ucLabelEditStock.Value.ToString()) && CheckStackItemError(this.ucLabelEditStock.Value.Trim(), this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                                                                                                           ((RcardToStackPallet)rcardToStackPallet[0]).ItemCode))
                {
                    //Message:目标垛位的物料和当前物料不一致
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_ITEM_DIFF"));
                    return(false);
                }

                //检查栈板容量是否满
                if (!inventoryFacade.CheckStackCapacity(this.ucLabelComboxINVType.SelectedItemValue.ToString().Trim().ToUpper(),
                                                        this.ucLabelEditStock.Value.Trim().ToUpper()))
                {
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_CAPACITY_FULL"));
                    return(false);
                }


                string            lotNo             = " ";
                DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider);
                SimulationReport  simulationReport  = (SimulationReport)dataCollectFacade.GetRcardFromSimulationReport(((RcardToStackPallet)rcardToStackPallet[0]).SerialNo);
                if (simulationReport != null)
                {
                    OQCFacade   oqcFacade   = new OQCFacade(this.DataProvider);
                    OQCLot2Card oqcLot2Card = (OQCLot2Card)oqcFacade.GetLastOQCLot2CardByRCard(simulationReport.RunningCard);

                    if (oqcLot2Card != null)
                    {
                        lotNo = oqcLot2Card.LOTNO;
                    }
                }

                //把原栈板更新为新栈板
                inventoryFacade.UpdateOriPalletStackToNewPallet(rcardToStackPallet,
                                                                this.txtUseNPallet.Value.Trim(),
                                                                this.ucLabelComboxINVType.SelectedItemValue.ToString(),
                                                                this.ucLabelEditStock.Value.Trim(),
                                                                ApplicationService.Current().LoginInfo.UserCode,
                                                                ApplicationService.Current().ResourceCode,
                                                                lotNo);

                //Load Grid
                this.LoadGrid(rcardToStackPallet, this.ucLabelEditStock.Value.Trim(), this.txtUseNPallet.Value.Trim());
            }

            return(true);
        }
Example #15
0
        private bool CheckRcardInput(string rcard, bool needAddToGrid)
        {
            if (!this.CheckSelecetedStackAndStorage(this.SelectedStorage, this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue)))
            {
                return(false);
            }

            InventoryFacade objInvFacade = new InventoryFacade(this.DataProvider);
            DataTable       dtInfo       = objInvFacade.GetSimulationReportInfo(rcard, packRcard);

            if (dtInfo.Rows.Count == 0)
            {
                //该序列号不存在
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_RCARD_IS_NOT_EXIT"));
                return(false);
            }

            if (!CheckRule(rcard))
            {
                return(false);
            }

            if (!CheckRcardIsInTheSameStack(rcard, this.ucLabelEditStock.Value))
            {
                return(false);
            }

            PackageFacade pf             = new PackageFacade(this.DataProvider);
            object        objPalletRcrad = pf.GetPallet2RCardByRCard(rcard);
            string        palletCode     = "";

            if (objPalletRcrad != null)
            {
                palletCode = ((Pallet2RCard)objPalletRcrad).PalletCode;

                //序列号存在栈板,请以栈板号来进行入库
                //ApplicationRun.GetInfoForm().Add(
                //new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_PALLET=" + palletCode));
                //return false;
            }


            //foreach (DataRow dr in dtInfo.Rows)
            //{
            DataRow dr = dtInfo.Rows[0];

            if (!this.CheckStackAndRcardInfo(dr["rcard"].ToString(), this.ucLabelEditStock.Value.Trim(), dr["itemcode"].ToString(), palletCode, this.ucLabelComboxCompany.SelectedItemValue.ToString(), this.ucLabelComboxINVType.SelectedItemValue.ToString()))
            {
                return(false);
            }
            else
            {
                if (needAddToGrid)
                {
                    if (CheckDuplicateInput(rcard, packRcard))
                    {
                        //重复输入
                        ApplicationRun.GetInfoForm().Add(
                            new UserControl.Message(MessageType.Error, "$CS_IDRepeatCollect $CS_Param_RunSeq=" + dr["rcard"].ToString()));
                        return(false);
                    }


                    if (objInvFacade.CheckStackIsOnlyAllowOneItem(this.ucLabelEditStock.Value.Trim()) && CheckExistItem(dr["itemcode"].ToString()))
                    {
                        ApplicationRun.GetInfoForm().Add(
                            new UserControl.Message(MessageType.Error, "$CS_ONLY_ONE_ITEM_IN_STACK"));
                        return(false);
                    }

                    DataRow drNew = this.m_dtRcard.NewRow();
                    drNew["palletcode"] = palletCode;
                    drNew["cartoncode"] = dr["cartoncode"];
                    drNew["rcard"]      = dr["rcard"];
                    drNew["mocode"]     = dr["mocode"];
                    drNew["itemcode"]   = dr["itemcode"];
                    drNew["itemdesc"]   = dr["itemdesc"];
                    drNew["inputtype"]  = packRcard;
                    drNew["sscode"]     = dr["sscode"];
                    this.m_dtRcard.Rows.Add(drNew);
                    this.ucLabelEditQty.Value = Convert.ToString(Convert.ToInt32(this.ucLabelEditQty.Value) + 1);
                }
            }
            //}

            return(true);
        }
Example #16
0
        private bool CheckPalletInput(string palletCode, bool needAddToGrid)
        {
            //if (!this.CheckSelecetedStackAndStorage(this.SelectedStorage, this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue)))
            //{
            //    return false;
            //}
            if (Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue).Trim().Length == 0)
            {
                //请输入库位
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_STORAGE_NOT_INPUT"));
                return(false);
            }

            if (!this.SelectedStorage.Equals(Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue)))
            {
                InventoryFacade inventoryFacade  = new InventoryFacade(this.DataProvider);
                int             stack2RCardCount = inventoryFacade.GetStack2RCardCount(this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue));

                if (stack2RCardCount > 0)
                {
                    //垛位和库别不对应
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_STORAGE_NOT_SAME"));
                    return(false);
                }
            }

            PackageFacade objPFFacade = new PackageFacade(this.DataProvider);

            //判断栈板号是否存在
            object[] objPallet2RCardS = objPFFacade.GetPallet2RCardListByPallet(palletCode);
            if (objPallet2RCardS == null)
            {
                //该栈板号不存在
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_PALLETNO_IS_NOT_EXIT"));
                return(false);
            }

            foreach (Pallet2RCard pallet2RCard in objPallet2RCardS)
            {
                string strRcard = pallet2RCard.RCard;

                InventoryFacade objInvFacade = new InventoryFacade(this.DataProvider);
                DataTable       dtInfo       = objInvFacade.GetSimulationReportInfo(strRcard, packRcard);

                if (dtInfo == null)
                {
                    //该序列号不存在
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_RCARD_IS_NOT_EXIT"));
                    return(false);
                }

                if (!CheckRule(strRcard))
                {
                    return(false);
                }

                //foreach (DataRow dr in dtInfo.Rows)
                DataRow dr = dtInfo.Rows[0];//{
                if (!this.CheckStackAndRcardInfo(strRcard, this.ucLabelEditStock.Value.Trim(), dr["itemcode"].ToString(), palletCode, this.ucLabelComboxCompany.SelectedItemValue.ToString(), this.ucLabelComboxINVType.SelectedItemValue.ToString()))
                {
                    return(false);
                }
                else
                {
                    if (needAddToGrid)
                    {
                        if (CheckDuplicateInput(dr["rcard"].ToString(), packRcard))
                        {
                            //重复输入
                            ApplicationRun.GetInfoForm().Add(
                                new UserControl.Message(MessageType.Error, "$CS_IDRepeatCollect $CS_Param_RunSeq=" + dr["rcard"].ToString()));
                            continue;
                        }

                        if (objInvFacade.CheckStackIsOnlyAllowOneItem(this.ucLabelEditStock.Value.Trim()) && CheckExistItem(dr["itemcode"].ToString()))
                        {
                            ApplicationRun.GetInfoForm().Add(
                                new UserControl.Message(MessageType.Error, "$CS_ONLY_ONE_ITEM_IN_STACK"));
                            return(false);
                        }


                        DataRow drNew = this.m_dtRcard.NewRow();
                        drNew["palletcode"] = palletCode;
                        drNew["cartoncode"] = dr["cartoncode"];
                        drNew["rcard"]      = dr["rcard"];
                        drNew["mocode"]     = dr["mocode"];
                        drNew["itemcode"]   = dr["itemcode"];
                        drNew["itemdesc"]   = dr["itemdesc"];
                        drNew["inputtype"]  = packPallet;
                        drNew["sscode"]     = dr["sscode"];

                        this.m_dtRcard.Rows.Add(drNew);

                        this.ucLabelEditQty.Value = Convert.ToString(Convert.ToInt32(this.ucLabelEditQty.Value) + 1);
                    }
                }
                //}
            }

            return(true);
        }
Example #17
0
        /// <summary>
        /// 成品入库检查
        /// </summary>
        /// <returns>true/false</returns>
        private bool CheckStackAndRcardInfo(string rcard, string stackCode, string itemCode, string palletCode, string companyCode, string storageCode)
        {
            DataCollectFacade dcFacade = new DataCollectFacade(this.DataProvider);
            SimulationReport  report   = dcFacade.GetLastSimulationReport(rcard);

            if (report != null)
            {
                if (!report.ItemCode.Equals(itemCode))
                {
                    //Message:产品序列号所对应的物料与输入物料不对应
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_PRODUCT_ITEM_NOT_SAME $ITEM_CODE=" + report.ItemCode));
                    return(false);
                }
            }


            ////Check从垛位使用状况的页面带过来的垛位和库位
            //if (!this.CheckSelecetedStackAndStorage(this.SelectedStorage, this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue)))
            //{
            //    return false;
            //}
            //else
            //{
            //Check序列号对应的料号是否和垛位的不一样
            InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider);

            object[] objStackToRcards = inventoryFacade.GetAnyStack2RCardByStack(stackCode);

            if (objStackToRcards != null)
            {
                if (inventoryFacade.CheckStackIsOnlyAllowOneItem(stackCode) && !((StackToRcard)objStackToRcards[0]).ItemCode.Equals(itemCode))
                {
                    //垛位的料号和当前产品的料号不一至
                    //ucMessage1.AddEx(this._FunctionName, this.opsetPackObject.CheckedItem.DisplayText + ": " + this.txtRCard.Value + ";料号:" + this.txtItemCode.Value, new UserControl.Message(MessageType.Error, "$CS_STACK_AND_PRODUCT_ITEM_NOT_SAME"), true);
                    ApplicationRun.GetInfoForm().Add(
                        new UserControl.Message(MessageType.Error, "$CS_STACK_AND_PRODUCT_ITEM_NOT_SAME $ITEM_CODE=" + itemCode));
                    return(false);
                }
            }

            //Check 序列号是否已经入过库
            object objStarckToRcard = inventoryFacade.GetStackToRcard(rcard);

            if (objStarckToRcard != null)
            {
                //序列号重复入库
                //ucMessage1.AddEx(this._FunctionName, "序列号" + ": " + this.txtRCard.Value, new UserControl.Message(MessageType.Error, "$CS_SERIAL_EXIST"), true);
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_SERIAL_EXIST $SERIAL_NO=" + rcard));
                return(false);
            }
            //}

            //Check 序列号是否已经在其他栈板上
            PackageFacade objPFFacade     = new PackageFacade(this.DataProvider);
            object        objPallet2RCard = objPFFacade.GetPallet2RCardByRCard(rcard);

            if (objPallet2RCard != null)
            {
                ApplicationRun.GetInfoForm().Add(
                    new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_IN_PALLET " + ((Pallet2RCard)objPallet2RCard).PalletCode));
                return(false);
            }

            //Check栈板(如果入栈板,而且栈板在系统中已经存在)的公司别,产品别和产品等级是否和当前的一致
            if (palletCode.Length > 0)
            {
                object[] objStackToRcardList = inventoryFacade.GetStackToRcardInfoByPallet(palletCode);
                if (objStackToRcardList != null)
                {
                    string       strErrorMessage = string.Empty;
                    StackToRcard obj             = (StackToRcard)objStackToRcardList[0];
                    if (obj.ItemCode != itemCode)
                    {
                        strErrorMessage = strErrorMessage + "itemcode";
                        ApplicationRun.GetInfoForm().Add(
                            new UserControl.Message(MessageType.Error, "$CS_ITEM_NOT_SAME_IN_PALLET=" + obj.ItemCode));
                    }

                    if (obj.Company != companyCode)
                    {
                        strErrorMessage = strErrorMessage + "companycode";
                        ApplicationRun.GetInfoForm().Add(
                            new UserControl.Message(MessageType.Error, "$CS_COMPANY_NOT_SAME_IN_PALLET=" + obj.Company));
                    }

                    //if (obj.ItemGrade != itemGrade)
                    //{
                    //    //ApplicationRun.GetInfoForm().Add(
                    //    //new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_IN_PALLET" + ((Pallet2RCard)objPallet2RCard).PalletCode));
                    //    //return false;
                    //    strErrorMessage = strErrorMessage + "itemgrade";
                    //    ApplicationRun.GetInfoForm().Add(
                    //    new UserControl.Message(MessageType.Error, "$CS_ITEMGRADE_NOT_SAME_IN_PALLET=" + obj.ItemGrade));
                    //}

                    if (strErrorMessage != string.Empty)
                    {
                        return(false);
                    }
                }
                else
                {
                    if (!inventoryFacade.CheckStackCapacity(storageCode, stackCode))
                    {
                        ApplicationRun.GetInfoForm().Add(
                            new UserControl.Message(MessageType.Error, "$CS_STACK_CAPACITY_FULL"));
                        return(false);
                    }
                }
            }

            //Check 出库的产品和当前选择的产品不一致
            object[] outTransList = inventoryFacade.GetInvOutTransaction(rcard, "");

            if (outTransList != null)
            {
                if (!((InvOutTransaction)outTransList[0]).ItemCode.Equals(itemCode))
                {
                    //Message:出库的产品:XXXXXXXXXXX和当前选择的产品不一致,是否继续使用当前选择的产品
                    if (MessageBox.Show(UserControl.MutiLanguages.ParserMessage("$CS_OUT_INV_ITEM_NOT_SAME") + "=" + ((InvOutTransaction)outTransList[0]).ItemCode + "," + UserControl.MutiLanguages.ParserMessage("$CS_OUT_INV_ITEM_NOT_SAME_ASK") + "?", UserControl.MutiLanguages.ParserMessage("$CS_CONFIRM"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                    {
                        return(false);
                    }
                }
            }

            if (!this.CheckRule(rcard))
            {
                return(false);
            }


            return(true);
        }
Example #18
0
        //Process Carton NO
        private void ProcessCarton(string cartonno)
        {
            DataCollectFacade dcf   = new DataCollectFacade(DataProvider);
            string            rCard = txtRCard.Value.Trim().ToUpper();

            rCard = dcf.GetSourceCard(rCard, string.Empty);

            //箱号为空时,表示序列号从旧箱中移除
            if (cartonno == String.Empty)
            {
                #region RCARD 从 Carton中移出
                if (DialogResult.OK == MessageBox.Show(this, MutiLanguages.ParserString("$CS_Confirm_Transfer_1") + " " + txtRCard.Value.Trim().ToUpper() + " "
                                                       + MutiLanguages.ParserString("$CS_Confirm_Transfer_2") + txtCurrentCarton.Value.Trim().ToUpper() + " " + MutiLanguages.ParserString("$CS_Confirm_Transfer_3"), MutiLanguages.ParserString("$ShowConfirm"), MessageBoxButtons.OKCancel))
                {
                    InventoryFacade materialDCF = new InventoryFacade(DataProvider);

                    object objSimulationReport = dcf.GetLastSimulationReport(rCard);

                    //在制品存在
                    if (objSimulationReport != null)
                    {
                        Domain.DataCollect.SimulationReport sim = objSimulationReport as Domain.DataCollect.SimulationReport;

                        sim.CartonCode = String.Empty;
                        PackageFacade pf = new PackageFacade(DataProvider);

                        #region 移出操作
                        DataProvider.BeginTransaction();
                        try
                        {
                            dcf.RemoveFromCarton(sim.RunningCard, ApplicationService.Current().UserCode);
                            //dcf.RemoveFromPallet2RCard(sim.RunningCard);
                            DataProvider.CommitTransaction();

                            ucMessage.Add(new UserControl.Message(MessageType.Success
                                                                  , "$CS_RCARD_BREAK_FROM_CARTON_SUCCESS $CS_Param_ID =" + txtRCard.Value.Trim().ToUpper()));

                            txtRCard.TextFocus(true, true);
                            txtCartonNO.Value = String.Empty;
                            ClearRCardInfo();
                        }
                        catch (Exception ex)
                        {
                            DataProvider.RollbackTransaction();
                            ucMessage.Add(new UserControl.Message(ex));

                            txtCartonNO.TextFocus(true, true);
                        }
                        finally
                        {
                            (DataProvider as SQLDomainDataProvider).PersistBroker.CloseConnection();
                        }
                        #endregion
                    }
                    else//在制品不存在
                    {
                        ucMessage.Add(new UserControl.Message(MessageType.Error
                                                              , "$NoSimulation $CS_Param_ID =" + txtRCard.Value.Trim().ToUpper()));

                        ClearRCardInfo();
                        txtRCard.TextFocus(true, true);
                    }
                }
                #endregion
            }
            else
            {
                #region RCARD 从当前Carton移转到另外一个Carton
                InventoryFacade materialDCF = new InventoryFacade(DataProvider);
                //ActionOnLineHelper onlineHelper = new ActionOnLineHelper(DataProvider);

                if (!CheckTargetCarton(cartonno))
                {
                    if (!m_NeedAddNewCarton)
                    {
                        txtCartonNO.TextFocus(true, true);
                        return;
                    }
                }
                string sourceCard          = dcf.GetSourceCard(txtRCard.Value.Trim().ToUpper(), string.Empty);
                object objSimulationReport = dcf.GetLastSimulationReport(sourceCard);

                if (objSimulationReport != null)
                {
                    Domain.DataCollect.SimulationReport simulationReport = objSimulationReport as Domain.DataCollect.SimulationReport;

                    simulationReport.CartonCode = cartonno.Trim().ToUpper();
                    Package.PackageFacade pf = new BenQGuru.eMES.Package.PackageFacade(DataProvider);

                    #region 移转操作
                    DataProvider.BeginTransaction();
                    try
                    {
                        //Add By Bernard @ 2010-11-01
                        string moCode           = txtMoCode.Value.Trim().ToUpper();
                        string oldCartonno      = txtCurrentCarton.Value.Trim().ToUpper();
                        bool   m_HasCartonAdded = false;
                        //end

                        //包装箱不存在,为CartonInfo表增加一个包装箱信息
                        if (m_NeedAddNewCarton)
                        {
                            DBDateTime currentDateTime = FormatHelper.GetNowDBDateTime(DataProvider);
                            BenQGuru.eMES.Domain.Package.CARTONINFO newCarton = new BenQGuru.eMES.Domain.Package.CARTONINFO();

                            newCarton.CARTONNO    = cartonno.Trim().ToUpper();
                            newCarton.CAPACITY    = ((new ItemFacade(DataProvider)).GetItem(simulationReport.ItemCode, GlobalVariables.CurrentOrganizations.First().OrganizationID) as Item).ItemCartonQty;
                            newCarton.COLLECTED   = 0;
                            newCarton.EATTRIBUTE1 = "";
                            newCarton.PKCARTONID  = System.Guid.NewGuid().ToString().ToUpper();
                            newCarton.MUSER       = ApplicationService.Current().UserCode;
                            newCarton.MDATE       = currentDateTime.DBDate;
                            newCarton.MTIME       = currentDateTime.DBTime;
                            pf.AddCARTONINFO(newCarton);

                            //0.向tblcarton2rcard表增加一个包装箱 Add By Bernard @ 2010-11-01
                            Carton2RCARD newCarton2RCard = new Carton2RCARD();
                            newCarton2RCard.CartonCode  = cartonno.Trim().ToUpper();
                            newCarton2RCard.Rcard       = rCard;
                            newCarton2RCard.MUser       = ApplicationService.Current().UserCode;
                            newCarton2RCard.MDate       = currentDateTime.DBDate;
                            newCarton2RCard.MTime       = currentDateTime.DBTime;
                            newCarton2RCard.Eattribute1 = "";
                            newCarton2RCard.MOCode      = moCode;
                            pf.AddCarton2RCARD(newCarton2RCard);
                            m_HasCartonAdded = true;
                            //end
                        }

                        //1.判断新箱与旧箱内产品工单代码是否一致 Add By Bernard @ 2010-11-01
                        object oldObj = pf.GetCarton2RCARD(oldCartonno, rCard);
                        //modified by lisa @20120829
                        //string newMOCode = moCode;
                        object[] newObj    = pf.GetCarton2RCARDByCartonNO(FormatHelper.CleanString(this.txtCartonNO.Value.Trim()));
                        string   newMOCode = ((Carton2RCARD)newObj[0]).MOCode;
                        //end add
                        string oldMOCode = ((Carton2RCARD)oldObj).MOCode;

                        if (oldMOCode == newMOCode)        //工单代码一致
                        {
                            if (m_HasCartonAdded == false) //箱号没有新增,则向Carton2RCard新增一条记录
                            {
                                DBDateTime   currentDateTime = FormatHelper.GetNowDBDateTime(DataProvider);
                                Carton2RCARD carton2rcard    = new Carton2RCARD();
                                carton2rcard.Rcard       = rCard;
                                carton2rcard.CartonCode  = cartonno;
                                carton2rcard.MOCode      = moCode;
                                carton2rcard.MUser       = ApplicationService.Current().UserCode;
                                carton2rcard.MDate       = currentDateTime.DBDate;
                                carton2rcard.MTime       = currentDateTime.DBTime;
                                carton2rcard.Eattribute1 = "";
                                pf.AddCarton2RCARD(carton2rcard);
                            }
                            //end

                            dcf.RemoveFromCarton(simulationReport.RunningCard, ApplicationService.Current().UserCode);

                            pf.UpdateCollected(cartonno.Trim().ToUpper());

                            Domain.DataCollect.Simulation simulation = (Domain.DataCollect.Simulation)dcf.GetSimulation(simulationReport.RunningCard);

                            if (simulation != null)
                            {
                                simulation.CartonCode = cartonno.Trim().ToUpper();
                                dcf.UpdateSimulation(simulation);
                            }

                            dcf.UpdateSimulationReport(simulationReport);

                            //记log
                            pf.addCarton2RCARDLog(cartonno, simulationReport.RunningCard, ApplicationService.Current().UserCode);
                            //end
                        }
                        else//新旧包装箱工单代码不一致 Add By Bernard @ 2010-11-01
                        {
                            if (m_HasCartonAdded == true)
                            {
                                //删除CartonInfo表新增加的包装箱
                                CARTONINFO cartoninfo = new CARTONINFO();
                                cartoninfo.CARTONNO = cartonno;
                                pf.DeleteCARTONINFO(cartoninfo);

                                //删除旧Carton2RCARD表新增加的箱号
                                Carton2RCARD carton2rcard = new Carton2RCARD();
                                carton2rcard.Rcard      = rCard;
                                carton2rcard.CartonCode = cartonno;
                                pf.DeleteCarton2RCARD(carton2rcard);
                            }
                            else
                            {
                                DataProvider.RollbackTransaction();
                                ucMessage.Add(new UserControl.Message(MessageType.Error,
                                                                      "$CS_CARTON_NO :" + cartonno + "$CS_Which_MOCode_With_RCard :" + rCard + "$CS_For_Carton_No's_MOCode_Is_Different"));
                                txtCartonNO.TextFocus(true, true);
                                return;
                            }
                        }
                        //end

                        DataProvider.CommitTransaction();

                        ucMessage.Add(new UserControl.Message(MessageType.Success
                                                              , "$CS_RCARD_TRANSFER_CARTON_SUCCESS $CS_Param_ID =" + txtRCard.Value.Trim().ToUpper()));

                        txtRCard.TextFocus(true, true);
                        txtCartonNO.Value = String.Empty;
                        ClearRCardInfo();
                    }
                    catch (Exception ex)
                    {
                        DataProvider.RollbackTransaction();
                        ucMessage.Add(new UserControl.Message(ex));

                        txtCartonNO.TextFocus(true, true);
                    }
                    finally
                    {
                        (DataProvider as SQLDomainDataProvider).PersistBroker.CloseConnection();
                    }
                    #endregion
                }
                else
                {
                    ucMessage.Add(new UserControl.Message(MessageType.Error, "$NoSimulation $CS_Param_ID =" + txtRCard.Value.Trim().ToUpper()));

                    ClearRCardInfo();
                    txtRCard.TextFocus(true, true);
                }

                #endregion
            }
        }
Example #19
0
        public override Messages Action(object act)
        {
            Messages msg = new Messages();

            BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider domainProvider = null;


            if (act == null)
            {
                return(msg);
            }

            if ((act as IDCTClient).DBConnection != null)
            {
                domainProvider = (act as IDCTClient).DBConnection as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
            }
            else
            {
                domainProvider = Common.DomainDataProvider.DomainDataProviderManager.DomainDataProvider()
                                 as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
                (act as IDCTClient).DBConnection = domainProvider;
            }

            DataCollectFacade db = new DataCollectFacade(domainProvider);

            object[] objSimulation = db.GetSimulationFromCarton(strCarton);

            if (objSimulation == null)
            {
                msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPAREAPPENDIX_NOTSUCCESS"));
                ProcessBeforeReturn(this.Status, msg);
                return(msg);
            }
            else
            {
                object objSimulationRcrd = objSimulation[0];
                //if (((Simulation)objSimulationRcrd).ItemCode.ToString().ToUpper() != act.ToString().ToUpper())
                if (((Simulation)objSimulationRcrd).RunningCard.ToUpper().IndexOf(act.ToString().ToUpper()) != 0)
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPAREAPPENDIX_NOTSUCCESS"));
                    ProcessBeforeReturn(this.Status, msg);
                    return(msg);
                }
                else
                {
                    msg.Add(new UserControl.Message(MessageType.Success, "$CS_COMPAREAPPENDIX_SUCCESS"));
                    DBDateTime dbDateTime;
                    dbDateTime = FormatHelper.GetNowDBDateTime(domainProvider);
                    PackageFacade _Packfacade     = new PackageFacade(domainProvider);
                    PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();
                    newPackingCheck.Rcard            = ((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper();
                    newPackingCheck.CheckAccessory   = FormatHelper.TRUE_STRING;
                    newPackingCheck.CheckProductCode = FormatHelper.FALSE_STRING;
                    newPackingCheck.MUSER            = (act as IDCTClient).LoginedUser;
                    newPackingCheck.MDATE            = dbDateTime.DBDate;
                    newPackingCheck.MTIME            = dbDateTime.DBTime;
                    newPackingCheck.EATTRIBUTE1      = " ";
                    object objGet = _Packfacade.GetPACKINGCHK(((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper());
                    if (objGet != null)
                    {
                        newPackingCheck.CheckProductCode = ((PACKINGCHK)objGet).CheckProductCode.Trim();
                        newPackingCheck.EATTRIBUTE1      = ((PACKINGCHK)objGet).EATTRIBUTE1;
                        _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                        _Packfacade.AddPACKINGCHK(newPackingCheck);
                    }
                    else
                    {
                        _Packfacade.AddPACKINGCHK(newPackingCheck);
                    }
                    base.Action(act);
                    this.ObjectState = null;
                    strCarton        = string.Empty;
                    return(msg);
                }
            }
        }
Example #20
0
        public override Messages Action(object act)
        {
            Messages msg = new Messages();

            BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider domainProvider = null;


            if (act == null)
            {
                return(msg);
            }

            if ((act as IDCTClient).DBConnection != null)
            {
                domainProvider = (act as IDCTClient).DBConnection as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
            }
            else
            {
                domainProvider = Common.DomainDataProvider.DomainDataProviderManager.DomainDataProvider()
                                 as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
                (act as IDCTClient).DBConnection = domainProvider;
            }

            DataCollectFacade db = new DataCollectFacade(domainProvider);

            object[] objSimulation = db.GetSimulationFromCarton(_CartonCode);

            if (objSimulation == null)
            {
                msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG "));
                ProcessBeforeReturn(this.Status, msg);
                return(msg);
            }
            else
            {
                object objSimulationRcrd = objSimulation[0];

                ItemFacade itemfacade = new ItemFacade(domainProvider);
                object     objitem    = itemfacade.GetItem(((Simulation)objSimulation[0]).ItemCode.Trim().ToUpper(), GlobalVariables.CurrentOrganizations.First().OrganizationID);
                if (objitem == null)
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG "));
                    ProcessBeforeReturn(this.Status, msg);
                    return(msg);
                }
                else
                {
                    if (((Item)objitem).ItemProductCode.ToUpper().Trim() == act.ToString().ToUpper())
                    {
                        //add by hiro 08/10/06
                        DBDateTime dbDateTime;
                        dbDateTime = FormatHelper.GetNowDBDateTime(domainProvider);
                        PackageFacade _Packfacade     = new PackageFacade(domainProvider);
                        PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();
                        newPackingCheck.Rcard            = ((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper();
                        newPackingCheck.CheckAccessory   = FormatHelper.FALSE_STRING;
                        newPackingCheck.CheckProductCode = FormatHelper.TRUE_STRING;
                        newPackingCheck.MUSER            = (act as IDCTClient).LoginedUser;
                        newPackingCheck.MDATE            = dbDateTime.DBDate;
                        newPackingCheck.MTIME            = dbDateTime.DBTime;
                        newPackingCheck.EATTRIBUTE1      = " ";
                        object objGet = _Packfacade.GetPACKINGCHK(((Simulation)objSimulationRcrd).RunningCard.ToString().ToUpper());
                        if (objGet != null)
                        {
                            newPackingCheck.CheckAccessory = ((PACKINGCHK)objGet).CheckAccessory.Trim();
                            newPackingCheck.EATTRIBUTE1    = ((PACKINGCHK)objGet).EATTRIBUTE1;
                            _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                            _Packfacade.AddPACKINGCHK(newPackingCheck);
                        }
                        else
                        {
                            _Packfacade.AddPACKINGCHK(newPackingCheck);
                        }
                        //end by hiro
                        base.Action(act);
                        msg.Add(new UserControl.Message(MessageType.Success, "$CS_COMPARECOMMODITY_ISSUCCESS "));
                        _CartonCode = string.Empty;
                        return(msg);
                    }
                    else
                    {
                        msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPARECOMMODITY_ISWRONG "));
                        ProcessBeforeReturn(this.Status, msg);
                        return(msg);
                    }
                }
            }
        }
Example #21
0
        public override Messages Action(object act)
        {
            Messages msg = new Messages();

            BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider domainProvider = null;


            if (act == null)
            {
                return(msg);
            }

            if ((act as IDCTClient).DBConnection != null)
            {
                domainProvider = (act as IDCTClient).DBConnection as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
            }
            else
            {
                domainProvider = Common.DomainDataProvider.DomainDataProviderManager.DomainDataProvider()
                                 as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider;
                (act as IDCTClient).DBConnection = domainProvider;
            }


            if (m_FlowControl == 1)
            {
                string itemCode = ((Item)_item).ItemCode.ToString();
                strCarton = act.ToString().Trim().ToUpper();

                if (((Item)_item).NeedCheckCarton == FormatHelper.TRUE_STRING)
                {
                    if (strRcard.StartsWith(itemCode, StringComparison.CurrentCultureIgnoreCase))
                    {
                        if (string.Compare(strRcard, strCarton, true) == 0)
                        {
                            msg.Add(new UserControl.Message(MessageType.Error, "$Error_CartonNotMatchTheRule"));
                            msg.Add(new UserControl.Message(MessageType.Success, "$CS_PLEASE_INPUT_CARTONNO"));

                            this.Status = ActionStatus.PrepareData;
                            return(msg);
                        }
                        else
                        {
                            if (string.Compare(strRcard.Replace(" ", ""), strCarton.Replace(" ", ""), true) != 0)
                            {
                                msg.Add(new UserControl.Message(MessageType.Error, "$Error_CartonCheckFailed"));
                                msg.Add(new UserControl.Message(MessageType.Success, "$CS_PLEASE_INPUT_CARTONNO"));
                                this.Status = ActionStatus.PrepareData;
                                return(msg);
                            }
                            else
                            {
                                msg.Add(new UserControl.Message(MessageType.Success, "$CARTON_COMPARE_ISSUCCESS"));
                            }
                        }
                    }
                    else
                    {
                        if (string.Compare(strRcard, strCarton, true) == 0)
                        {
                            msg.Add(new UserControl.Message(MessageType.Success, "$CARTON_COMPARE_ISSUCCESS"));
                        }
                        else
                        {
                            msg.Add(new UserControl.Message(MessageType.Error, "$Error_CartonCheckFailed"));
                            msg.Add(new UserControl.Message(MessageType.Success, "$CS_PLEASE_INPUT_CARTONNO"));
                            this.Status = ActionStatus.PrepareData;
                            return(msg);
                        }
                    }
                }

                object obj = (new Package.PackageFacade(domainProvider)).GetCARTONINFO(act.ToString().Trim().ToUpper());
                if (obj != null && ((CARTONINFO)obj).CAPACITY.ToString() == ((CARTONINFO)obj).COLLECTED.ToString())
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CARTON_ALREADY_FILL_OUT"));
                    msg.Add(new UserControl.Message(MessageType.Success, "$CS_PLEASE_INPUT_CARTONNO"));
                    this.Status = ActionStatus.PrepareData;
                    return(msg);
                }
                else
                {
                    m_FlowControl++;
                    msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_WRAPPER"));
                    this.Status = ActionStatus.PrepareData;
                    return(msg);
                }
            }
            else
            {
                //if (((Simulation)_objSimulation).ItemCode.ToUpper().Trim() == act.ToString().ToUpper())
                if (((Simulation)_objSimulation).RunningCard.ToUpper().IndexOf(act.ToString().ToUpper()) == 0)
                {
                    ActionOnLineHelper actionOnLineHelper = new ActionOnLineHelper(domainProvider);
                    BenQGuru.eMES.DataCollect.Action.ActionFactory actionFactory = new BenQGuru.eMES.DataCollect.Action.ActionFactory(domainProvider);
                    IAction actionCartonPack = actionFactory.CreateAction(ActionType.DataCollectAction_Carton);
                    //((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)domainProvider).PersistBroker.OpenConnection();
                    msg = actionOnLineHelper.GetIDInfo(strRcard);
                    string     cartonno = FormatHelper.CleanString(strCarton);
                    IDCTClient client   = act as IDCTClient;

                    //add by hiro 08/09/28
                    DBDateTime dbDateTime;
                    dbDateTime = FormatHelper.GetNowDBDateTime(domainProvider);
                    PackageFacade _Packfacade     = new PackageFacade(domainProvider);
                    PACKINGCHK    newPackingCheck = _Packfacade.CreateNewPACKINGCHK();
                    newPackingCheck.Rcard            = ((Simulation)_objSimulation).RunningCard.ToString().ToUpper();
                    newPackingCheck.CheckAccessory   = FormatHelper.TRUE_STRING;
                    newPackingCheck.CheckProductCode = FormatHelper.FALSE_STRING;
                    newPackingCheck.MUSER            = (act as IDCTClient).LoginedUser;
                    newPackingCheck.MDATE            = dbDateTime.DBDate;
                    newPackingCheck.MTIME            = dbDateTime.DBTime;
                    newPackingCheck.EATTRIBUTE1      = " ";
                    object objGet = _Packfacade.GetPACKINGCHK(((Simulation)_objSimulation).RunningCard.ToString().ToUpper());
                    if (objGet != null)
                    {
                        _Packfacade.DeletePACKINGCHK((PACKINGCHK)objGet);
                        _Packfacade.AddPACKINGCHK(newPackingCheck);
                    }
                    else
                    {
                        _Packfacade.AddPACKINGCHK(newPackingCheck);
                    }
                    //end by hiro

                    Messages msgTwo = new Messages();
                    domainProvider.BeginTransaction();
                    try
                    {
                        if (msg.IsSuccess())
                        {
                            ProductInfo product = (ProductInfo)msg.GetData().Values[0];
                            if (product.LastSimulation == null)
                            {
                                base.Action(act);
                                msgTwo.Add(new UserControl.Message(new Exception("$Error_LastSimulation_IsNull!")));
                                this.ObjectState = null;
                                return(msgTwo);
                            }

                            CartonPackEventArgs cartonPackEventArgs = new CartonPackEventArgs(ActionType.DataCollectAction_Carton,
                                                                                              strRcard, client.LoginedUser,
                                                                                              client.ResourceCode,
                                                                                              "",
                                                                                              cartonno,
                                                                                              product);

                            msgTwo.AddMessages(actionCartonPack.Execute(cartonPackEventArgs));
                        }
                        if (msgTwo.IsSuccess())
                        {
                            domainProvider.CommitTransaction();
                        }
                        else
                        {
                            domainProvider.RollbackTransaction();
                            msgTwo.Add(new UserControl.Message(MessageType.Normal, "$CS_Please_Input_RunningCard"));
                            this.Status      = ActionStatus.PrepareData;
                            this.FlowDirect  = FlowDirect.WaitingInput;
                            this.ObjectState = null;
                            this.clearValue();
                            return(msgTwo);
                        }
                    }
                    catch (Exception ex)
                    {
                        domainProvider.RollbackTransaction();
                        msg.Add(new UserControl.Message(ex));
                        msg.Add(new UserControl.Message(MessageType.Normal, "$CS_Please_Input_RunningCard"));
                        this.Status      = ActionStatus.PrepareData;
                        this.FlowDirect  = FlowDirect.WaitingInput;
                        this.ObjectState = null;
                        this.clearValue();
                        return(msg);
                    }
                    finally
                    {
                        ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)domainProvider).PersistBroker.CloseConnection();
                    }

                    base.Action(act);
                    msg.Add(new UserControl.Message(MessageType.Success, "$CS_COMPAREAPPENDIX_SUCCESS"));
                    msg.Add(new UserControl.Message(MessageType.Success, "$CS_RCARD_CARTON_SUCCESS [" + strCarton + "]"));
                    this.ObjectState = null;
                    this.clearValue();
                    return(msg);
                }
                else
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_COMPAREAPPENDIX_NOTSUCCESS"));
                    msg.Add(new UserControl.Message(MessageType.Normal, "$CS_PLEASE_INPUT_WRAPPER"));
                    this.Status = ActionStatus.PrepareData;
                    return(msg);
                }
            }
        }