Beispiel #1
0
        public InventoryTransactionDTO ConvertUIDMToDTO(AdjustmentEntryUIDM model)
        {
            InventoryTransactionDTO dto = new InventoryTransactionDTO();

            dto.TRANS_ID        = model.TransactionID;
            dto.ITEM_CD         = model.ItemCode;
            dto.LOC_CD          = model.StoredLoc;
            dto.LOT_NO          = (model.LotNo.IsNull || model.LotNo.StrongValue.Trim() == string.Empty) ? new NZString() : model.LotNo;
            dto.TRANS_DATE      = model.AdjustDate;
            dto.TRANS_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Adjustment);
            dto.IN_OUT_CLS      = model.AdjustType;
            dto.QTY             = model.AdjustQty;
            dto.WEIGHT          = model.AdjustWeight;
            dto.PACK_NO         = model.PackNo;
            dto.FG_NO           = model.FGNo;
            dto.EXTERNAL_LOT_NO = model.ExternalLotNo;
            dto.SLIP_NO         = model.AdjustNo;
            dto.GROUP_TRANS_ID  = model.GroupTransID;
            //dto.OBJ_ITEM_CD =
            //dto.REF_NO =
            //dto.REF_SLIP_NO =
            //dto.REF_SLIP_CLS =
            //dto.OTHER_DL_NO =
            dto.REMARK       = model.Remark;
            dto.TRAN_SUB_CLS = model.ReasonCode;
            dto.SCREEN_TYPE  = DataDefine.ScreenType.AdjustmentEntry.ToNZString();
            dto.EFFECT_STOCK = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In).ToString().Equals(model.AdjustType.StrongValue) ? new NZInt(null, (int)DataDefine.eEFFECT_STOCK.In) : new NZInt(null, (int)DataDefine.eEFFECT_STOCK.Out);
            dto.CRT_BY       = CommonLib.Common.CurrentUserInfomation.UserCD;
            dto.CRT_MACHINE  = CommonLib.Common.CurrentUserInfomation.Machine;
            dto.UPD_BY       = CommonLib.Common.CurrentUserInfomation.UserCD;
            dto.UPD_MACHINE  = CommonLib.Common.CurrentUserInfomation.Machine;
            dto.OLD_DATA     = new NZInt(null, 0);
            return(dto);
        }
Beispiel #2
0
        private void InitializeSpread()
        {
            shtProductionReportList.ActiveSkin = Common.ACTIVE_SKIN;

            #region Cell Type

            LookupDataBIZ m_bizLookupData = new LookupDataBIZ();

            LookupData dataShiftCls = m_bizLookupData.LoadLookupClassType(DataDefine.SHIFT_CLS.ToNZString());
            shtProductionReportList.Columns[(int)eColView.SHIFT].CellType = CtrlUtil.CreateReadOnlyPairCellType(dataShiftCls);

            NZString[] locationtype = new NZString[1];
            locationtype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Production).ToNZString();
            LookupData dataProductionProcess = m_bizLookupData.LoadLookupLocation(locationtype);
            shtProductionReportList.Columns[(int)eColView.PROCESS].CellType = CtrlUtil.CreateReadOnlyPairCellType(dataProductionProcess);

            LookupData dataMachine = m_bizLookupData.LoadMachineAll();
            shtProductionReportList.Columns[(int)eColView.MACHINE_NO].CellType = CtrlUtil.CreateReadOnlyPairCellType(dataMachine);

            LookupData dataPersonInCharge = m_bizLookupData.LoadPersonInCharge();
            shtProductionReportList.Columns[(int)eColView.PERSON_IN_CHARGE].CellType = CtrlUtil.CreateReadOnlyPairCellType(dataPersonInCharge);

            NZString[] supplier = new NZString[2];
            supplier[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Vendor).ToNZString();
            supplier[1] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor).ToNZString();
            LookupData supplierData = m_bizLookupData.LoadLookupLocation(supplier);
            shtProductionReportList.Columns[(int)eColView.SUPPLIER].CellType = CtrlUtil.CreateReadOnlyPairCellType(supplierData);
            //NZString[] suppliertype = new NZString[1]; //04 = Supplier
            //suppliertype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Vendor).ToNZString();
            //LookupData dataSupplier = m_bizLookupData.LoadLookupLocation(suppliertype);
            //shtProductionReportList.Columns[(int)eColView.Fo].CellType = CtrlUtil.CreateReadOnlyPairCellType(dataSupplier);

            shtProductionReportList.Columns[(int)eColView.REWORK].CellType            = CtrlUtil.CreateCheckboxCellType();
            shtProductionReportList.Columns[(int)eColView.REWORK].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;

            #endregion

            #region Export Type

            shtProductionReportList.Columns[(int)eColView.TRANS_ID].StyleName     = DataDefine.EXPORT_LAST.ToString();
            shtProductionReportList.Columns[(int)eColView.MACHINE_NAME].StyleName = DataDefine.NO_EXPORT.ToString();

            #endregion

            #region Visible

            shtProductionReportList.Columns[(int)eColView.TRANS_ID].Visible              = false;
            shtProductionReportList.Columns[(int)eColView.MACHINE_NAME].Visible          = false;
            shtProductionReportList.Columns[(int)eColView.SHIFT_NAME].Visible            = false;
            shtProductionReportList.Columns[(int)eColView.PROCESS_NAME].Visible          = false;
            shtProductionReportList.Columns[(int)eColView.PERSON_IN_CHARGE_NAME].Visible = false;
            shtProductionReportList.Columns[(int)eColView.SUPPLIER_NAME].Visible         = false;
            // 14 Feb 2013: hide lot no and cust lot no
            shtProductionReportList.Columns[(int)eColView.LOT_NO].Visible      = false;
            shtProductionReportList.Columns[(int)eColView.CUST_LOT_NO].Visible = false;
            // end 14 Feb 2013
            #endregion

            CtrlUtil.MappingDataFieldWithEnum(shtProductionReportList, typeof(eColView));
        }
Beispiel #3
0
        private void InitializeSpread()
        {
            shtView.ActiveSkin = Common.ACTIVE_SKIN;

            LookupDataBIZ biz = new LookupDataBIZ();

            NZString[] classInfos =
            {
                (NZString)DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Receiving),
                (NZString)DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Receive_Return)
            };

            LookupData receiveTypeLookupData = biz.LoadLookupClassType(DataDefine.TRANS_TYPE.ToNZString(), classInfos);

            shtView.Columns[(int)eColView.TRANS_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(receiveTypeLookupData);

            LookupData locationLookupData = biz.LoadLookupLocation();

            shtView.Columns[(int)eColView.LOC_CD].CellType     = CtrlUtil.CreateReadOnlyPairCellType(locationLookupData);
            shtView.Columns[(int)eColView.DEALING_NO].CellType = CtrlUtil.CreateReadOnlyPairCellType(locationLookupData);

            LookupData umClassLookupData = biz.LoadLookupClassType(DataDefine.UM_CLS.ToNZString());

            shtView.Columns[(int)eColView.ORDER_UM_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(umClassLookupData);
            shtView.Columns[(int)eColView.INV_UM_CLS].CellType   = CtrlUtil.CreateReadOnlyPairCellType(umClassLookupData);

            LookupData refTypeLookupData = biz.LoadLookupClassType(DataDefine.REF_SLIP_CLS.ToNZString());

            shtView.Columns[(int)eColView.REF_SLIP_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(refTypeLookupData);

            shtView.Columns[(int)eColView.TRANS_DATE].CellType = CtrlUtil.CreateDateTimeCellType();
            CtrlUtil.MappingDataFieldWithEnum(shtView, typeof(eColView));
        }
Beispiel #4
0
        private void LookupData()
        {
            LookupDataBIZ biz = new LookupDataBIZ();

            NZString[] locationClsType = new NZString[3];
            locationClsType[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer).ToNZString();
            locationClsType[1] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Vendor).ToNZString();
            locationClsType[2] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor).ToNZString();

            LookupData lookupData = biz.LoadLookupClassType(DataDefine.LOCATION_CLS.ToNZString(), locationClsType);

            cboDealingType.LoadLookupData(lookupData);
            cboDealingType.SelectedIndex = -1;

            LookupData termOfPayment = biz.LoadLookupClassType(DataDefine.TERM_OF_PAYMENT.ToNZString());

            cboTermOfPayment.LoadLookupData(termOfPayment);
            cboTermOfPayment.SelectedIndex = -1;

            LookupData InvoicePattern = biz.LoadLookupClassType(DataDefine.INVOICE_PATTERN.ToNZString());

            cboInvoicePattern.LoadLookupData(InvoicePattern);
            cboInvoicePattern.SelectedIndex = -1;


            LookupData lookupData2 = biz.LoadLookupClassType(DataDefine.MRP_LOCATION.ToNZString());
        }
Beispiel #5
0
        private void AssignHeaderToDTO(ReturnEntryUIDM model, InventoryTransactionDTO dto, Common.eScreenMode Mode)
        {
            //dto.TRANS_DATE = model.TRANS_DATE;
            //dto.SLIP_NO = model.SLIP_NO;
            dto.TRANS_CLS          = DataDefine.eTRANS_TYPE_string.Shipment_Return.ToNZString();
            dto.IN_OUT_CLS         = DataDefine.eIN_OUT_CLASS.In.ToString().ToNZString();
            dto.EFFECT_STOCK.Value = (int)DataDefine.eEFFECT_STOCK.In;
            dto.REMARK             = model.REMARK;
            dto.LOC_CD             = model.LOC_CD;
            dto.REF_SLIP_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.Shipment);
            dto.SCREEN_TYPE        = DataDefine.ScreenType.ReturnEntry.ToNZString();
            dto.DEALING_NO         = model.DEALING_NO;
            if (Mode == Common.eScreenMode.ADD)
            {
                dto.OLD_DATA.Value = 0;
            }
            //dto.CURRENCY = model.CURRENCY;
            dto.TRANS_DATE = model.TRANS_DATE;


            if (dto.TRANS_CLS.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Shipment))
            {
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out);
            }
            else
            {
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In);
            }
        }
Beispiel #6
0
        private InventoryTransactionDTO CreateDTOForReserveResult(MultiWorkResultEntryUIDM modelHeader
                                                                  , MultiWorkResultEntryViewDTO dtoDetailEntry)
        {
            InventoryTransactionDTO dto = new InventoryTransactionDTO();

            dto.TRANS_ID         = dtoDetailEntry.RESERVE_TRANSACTION_ID;
            dto.ITEM_CD          = modelHeader.ItemCode;
            dto.LOC_CD           = modelHeader.StoredLoc;
            dto.LOT_NO.Value     = dtoDetailEntry.LOT_NO + DataDefine.LOT_RESERVE_POSTFIX;
            dto.TRANS_DATE       = modelHeader.WorkResultDate;
            dto.TRANS_CLS.Value  = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.ReserveResult);
            dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In);
            dto.QTY                = dtoDetailEntry.RESERVE_QTY;
            dto.RESERVE_QTY        = dtoDetailEntry.RESERVE_QTY;
            dto.REMARK             = modelHeader.Remark;
            dto.REF_SLIP_NO        = modelHeader.WorkOrderNo;
            dto.SLIP_NO            = dtoDetailEntry.WORK_RESULT_NO;
            dto.REF_SLIP_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.WorkOrder);
            dto.CRT_BY             = Common.CurrentUserInfomation.UserCD;
            dto.CRT_MACHINE        = Common.CurrentUserInfomation.Machine;
            dto.UPD_BY             = Common.CurrentUserInfomation.UserCD;
            dto.UPD_MACHINE        = Common.CurrentUserInfomation.Machine;
            dto.SHIFT_CLS          = modelHeader.ShiftClass;
            dto.SCREEN_TYPE        = DataDefine.ScreenType.WorkResultEntry.ToNZString();
            dto.GROUP_TRANS_ID     = modelHeader.WorkResultGroupNo;
            return(dto);
        }
Beispiel #7
0
        private void InitializeComboBox()
        {
            LookupDataBIZ bizLookupData = new LookupDataBIZ();

            cboStoredLoc.Format   += Common.ComboBox_Format;
            cboInventoryUM.Format += Common.ComboBox_Format;

            cboReasonCode.Format += Common.ComboBox_Format;

            NZString[] locationtype = new NZString[1];
            locationtype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Production).ToNZString();
            LookupData locationLookup = bizLookupData.LoadLookupLocation(locationtype);

            cboStoredLoc.LoadLookupData(locationLookup);

            // Lookup Inventory U/M
            LookupData lookupInventoryUM = bizLookupData.LoadLookupClassType(new NZString(null, DataDefine.UM_CLS));

            cboInventoryUM.LoadLookupData(lookupInventoryUM);

            // Lookup Reason code
            LookupData lookupReason = bizLookupData.LoadLookupClassType(new NZString(null, DataDefine.ADJ_SUBTYPE));

            cboReasonCode.LoadLookupData(lookupReason);

            cboReasonCode.SelectedIndex  = -1;
            cboInventoryUM.SelectedIndex = -1;
            cboStoredLoc.SelectedIndex   = -1;
        }
Beispiel #8
0
        private bool CheckCanEditOrDelete(int row)
        {
            if (shtPackingList.RowCount <= 0)
            {
                return(false);
            }
            NZString transID         = new NZString(null, shtPackingList.Cells[row, (int)eColView.TRANS_ID].Value);
            bool     canEditOrDelete = m_transactionValidator.TransactionCanEditOrDelete(transID);

            if (canEditOrDelete)
            {
                //Unpack Cannot Delete and Modify
                InventoryTransBIZ       biz = new InventoryTransBIZ();
                InventoryTransactionDTO dto = biz.LoadByTransactionID(transID);
                if (dto != null)
                {
                    if (DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Unpack).Equals(dto.TRANS_CLS.StrongValue) ||
                        DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Unpack_Consumption).Equals(dto.TRANS_CLS.StrongValue)
                        )
                    {
                        canEditOrDelete = false;
                    }
                }
            }

            return(canEditOrDelete);
        }
Beispiel #9
0
        /// <summary>
        /// คัดลอกค่าที่เป็น Header ของ Model ไปเก็บไว้ใน DTO
        /// </summary>
        /// <param name="model"></param>
        /// <param name="dto"></param>
        private void AssignHeaderToDTO(ReceivingEntryUIDM model, InventoryTransactionDTO dto)
        {
            dto.TRANS_DATE  = model.RECEIVE_DATE;
            dto.SLIP_NO     = model.RECEIVE_NO;
            dto.TRANS_CLS   = model.RECEIVE_TYPE;
            dto.REF_SLIP_NO = model.PO_NO;
            dto.OTHER_DL_NO = model.INVOICE_NO;
            dto.REMARK      = model.REMARK;
            dto.LOC_CD      = model.STORED_LOC;
            dto.DEALING_NO  = model.DEALING_NO;
            dto.SCREEN_TYPE = DataDefine.ScreenType.ReceivingEntry.ToNZString();

            dto.REF_SLIP_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.PurchseOrder);

            if (dto.TRANS_CLS.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Receiving))
            {
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In);
            }
            else
            {
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out);
            }

            if (dto.REF_NO.IsNull)
            {
                RunningNumberBIZ runningNumberBIZ = new RunningNumberBIZ();
                NZString         runningNo        = runningNumberBIZ.GetCompleteRunningNo(DataDefine.RECEIVE_REF_NO.ToNZString(), DataDefine.TRANSACTION_TABLE_NAME.ToNZString());
                dto.REF_NO = runningNo;
            }
        }
Beispiel #10
0
        private void InitializeSpread()
        {
            shtCustomerOrderList.ActiveSkin = Common.ACTIVE_SKIN;

            shtCustomerOrderList.Columns[(int)eColView.ORDER_DETAIL_NO].Visible = false;
            shtCustomerOrderList.Columns[(int)eColView.LOC_DESC].Visible        = false;

            LookupDataBIZ biz = new LookupDataBIZ();

            NZString[] customerInfo = { (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer)
                                        , (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor)
                                        , (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Vendor) };

            LookupData customerLookup = biz.LoadLookupLocation(customerInfo);

            shtCustomerOrderList.Columns[(int)eColView.CUSTOMER_CD].CellType = CtrlUtil.CreateReadOnlyPairCellType(customerLookup);

            LookupData orderTypeLookup = biz.LoadLookupClassType(DataDefine.CUSTOMER_ORDER_TYPE.ToNZString());

            shtCustomerOrderList.Columns[(int)eColView.ORDER_TYPE].CellType = CtrlUtil.CreateReadOnlyPairCellType(orderTypeLookup);

            //LookupData umClassLookupData = biz.LoadLookupClassType(DataDefine.UM_CLS.ToNZString());
            //shtView.Columns[(int)eColView.ORDER_UM_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(umClassLookupData);
            //shtView.Columns[(int)eColView.INV_UM_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(umClassLookupData);

            //LookupData refTypeLookupData = biz.LoadLookupClassType(DataDefine.REF_SLIP_CLS.ToNZString());
            //shtView.Columns[(int)eColView.REF_SLIP_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(refTypeLookupData);

            //shtView.Columns[(int)eColView.TRANS_DATE].CellType = CtrlUtil.CreateDateTimeCellType();
            CtrlUtil.MappingDataFieldWithEnum(shtCustomerOrderList, typeof(eColView));
            CtrlUtil.SpreadUpdateColumnSorting(shtCustomerOrderList);
        }
Beispiel #11
0
        private InventoryTransactionDTO CreateDTOForConsumption(MultiWorkResultEntryUIDM model, MultiWorkResultEntryViewDTO line)
        {
            InventoryTransactionDTO dto = new InventoryTransactionDTO();

            dto.TRANS_ID            = line.CONSUMPTION_TRANSACTION_ID;
            dto.ITEM_CD             = model.ChildItemCode;
            dto.LOC_CD              = model.OrderLoc;
            dto.LOT_NO              = line.LOT_NO;
            dto.TRANS_DATE          = model.WorkResultDate;
            dto.TRANS_CLS.Value     = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Consumption);
            dto.IN_OUT_CLS.Value    = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out);
            dto.QTY.Value           = line.GOOD_QTY.NVL(0) + line.NG_QTY.NVL(0) + line.RESERVE_QTY.NVL(0);
            dto.OBJ_ITEM_CD         = model.ItemCode;
            dto.OBJ_ORDER_QTY.Value = line.GOOD_QTY.NVL(0) + line.NG_QTY.NVL(0) + line.RESERVE_QTY.NVL(0);
            dto.REMARK              = model.Remark;
            dto.REF_SLIP_CLS.Value  = DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.WorkResult);
            dto.CRT_BY              = Common.CurrentUserInfomation.UserCD;
            dto.CRT_MACHINE         = Common.CurrentUserInfomation.Machine;
            dto.UPD_BY              = Common.CurrentUserInfomation.UserCD;
            dto.UPD_MACHINE         = Common.CurrentUserInfomation.Machine;
            dto.SHIFT_CLS           = model.ShiftClass;
            dto.SCREEN_TYPE         = DataDefine.ScreenType.WorkResultEntry.ToNZString();
            dto.GROUP_TRANS_ID      = model.WorkResultGroupNo;
            return(dto);
        }
Beispiel #12
0
        private void LookupData()
        {
            string strTableName = EVOFramework.Data.DTOUtility.ReadTableName(typeof(MachineDTO));

            LookupDataBIZ biz = new LookupDataBIZ();

            LookupData MachineProjectData = biz.LoadLookupClassType(DataDefine.MACHINE_PROJECT.ToNZString());

            cboProject.LoadLookupData(MachineProjectData);
            cboProject.SelectedIndex = -1;

            NZString[] locationtype = new NZString[1];
            locationtype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Production).ToNZString();
            LookupData ProductionProcessData = biz.LoadLookupLocation(locationtype);

            //LookupData ProductionProcessData = biz.LoadLookupClassType(DataDefine.PRODUCTION_PROCESS.ToNZString());
            cboProcess.LoadLookupData(ProductionProcessData);
            cboProcess.SelectedIndex = -1;

            //LookupData lookupMachineType = biz.LoadLookupTextHelper(strTableName, MachineDTO.eColumns.MACHINE_TYPE.ToString());
            //cboMachineType.LoadLookupData(lookupMachineType);
            //cboMachineType.SelectedIndex = -1;
            LookupData lookupMachineType = biz.LoadLookupClassType(DataDefine.MACHINE_TYPE.ToNZString());

            cboMachineType.LoadLookupData(lookupMachineType);
            cboMachineType.SelectedIndex = -1;

            LookupData lookupMachineGroup = biz.LoadLookupTextHelper(strTableName, MachineDTO.eColumns.MACHINE_GROUP.ToString());

            cboMachineGroup.LoadLookupData(lookupMachineGroup);
            cboMachineGroup.SelectedIndex = -1;
        }
Beispiel #13
0
        /// <summary>
        /// คัดลอกค่าที่เป็น Header ของ Model ไปเก็บไว้ใน DTO
        /// </summary>
        /// <param name="model"></param>
        /// <param name="dto"></param>
        ///
        private void AssignHeaderToDTO(IssueByOrderUIDM model, InventoryTransactionDTO dto, DataDefine.eIN_OUT_CLASS in_out)
        {
            dto.TRANS_DATE = model.TRANS_DATE;
            //dto.REF_SLIP_NO = model.SLIP_NO;
            dto.TRANS_CLS = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Issuing).ToNZString();//model.TRANS_CLS;
            //dto.REF_SLIP_NO = model.INVOICE_NO;
            //dto.OTHER_DL_NO = model.INVOICE_NO;
            dto.REMARK        = model.REMARK;
            dto.OBJ_ITEM_CD   = model.OBJ_ITEM_CD;
            dto.OBJ_ORDER_QTY = model.OBJ_ORDER_QTY;
            dto.REF_SLIP_CLS  = (NZString)DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.Issue);
            dto.FOR_CUSTOMER  = model.FOR_CUSTOMER;
            dto.FOR_MACHINE   = model.FOR_MACHINE;
            dto.REF_SLIP_NO2  = model.REF_SLIP_NO2;
            dto.REF_SLIP_NO   = model.REF_SLIP_NO;
            dto.TRAN_SUB_CLS  = model.TRAN_SUB_CLS;
            dto.SCREEN_TYPE   = DataDefine.ScreenType.IssueByOrder.ToNZString();

            if (in_out == DataDefine.eIN_OUT_CLASS.In)
            {
                dto.REF_SLIP_NO      = model.SLIP_NO;
                dto.LOC_CD           = model.TO_LOC_CD;
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In);
            }
            else
            {
                dto.SLIP_NO          = model.SLIP_NO;
                dto.LOC_CD           = model.FROM_LOC_CD;
                dto.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out);
            }
        }
Beispiel #14
0
        private InventoryTransactionDTO CreateDTOForWorkResult(MultiWorkResultEntryUIDM modelHeader
                                                               , MultiWorkResultEntryViewDTO dtoDetailEntry)
        {
            InventoryTransactionDTO dtoTrans = new InventoryTransactionDTO();

            dtoTrans.TRANS_ID = dtoDetailEntry.GOOD_TRANSACTION_ID;
            dtoTrans.ITEM_CD  = modelHeader.ItemCode;
            dtoTrans.LOC_CD   = modelHeader.StoredLoc;
            if (DataDefine.eTRAN_SUB_CLS.WR.ToString().Equals(modelHeader.TRAN_SUB_CLS))
            {
                dtoTrans.LOT_NO       = dtoDetailEntry.LOT_NO;
                dtoTrans.TRAN_SUB_CLS = DataDefine.eTRAN_SUB_CLS.WR.ToString().ToNZString();
            }
            else if (DataDefine.eTRAN_SUB_CLS.RW.ToString().Equals(modelHeader.TRAN_SUB_CLS))
            {
                if (dtoDetailEntry.LOT_NO.ToString().EndsWith(DataDefine.LOT_RESERVE_POSTFIX))
                {
                    dtoTrans.LOT_NO.Value = dtoDetailEntry.LOT_NO.ToString().Remove(dtoDetailEntry.LOT_NO.ToString().Length - 2);
                }
                else
                {
                    dtoTrans.LOT_NO = dtoDetailEntry.LOT_NO;
                }

                dtoTrans.TRAN_SUB_CLS = DataDefine.eTRAN_SUB_CLS.RW.ToString().ToNZString();
            }
            else
            {
                //ใช้เหมือน WorkResult
                dtoTrans.LOT_NO       = dtoDetailEntry.LOT_NO;
                dtoTrans.TRAN_SUB_CLS = DataDefine.eTRAN_SUB_CLS.WR.ToString().ToNZString();
            }
            dtoTrans.TRANS_DATE       = modelHeader.WorkResultDate;
            dtoTrans.TRANS_CLS.Value  = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.WorkResult);
            dtoTrans.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In);
            dtoTrans.QTY.Value        = dtoDetailEntry.GOOD_QTY.NVL(0);
            dtoTrans.NG_QTY.Value     = dtoDetailEntry.NG_QTY.NVL(0);
            dtoTrans.REMARK           = modelHeader.Remark;
            dtoTrans.REF_SLIP_NO      = modelHeader.WorkOrderNo;
            dtoTrans.SLIP_NO          = dtoDetailEntry.WORK_RESULT_NO;
            //dtoTrans.REF_SLIP_NO2 = model.WorkOrderNo2; // ไม่มี
            dtoTrans.REF_SLIP_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eREF_SLIP_CLS.WorkOrder);
            dtoTrans.CRT_BY             = Common.CurrentUserInfomation.UserCD;
            dtoTrans.CRT_MACHINE        = Common.CurrentUserInfomation.Machine;
            dtoTrans.UPD_BY             = Common.CurrentUserInfomation.UserCD;
            dtoTrans.UPD_MACHINE        = Common.CurrentUserInfomation.Machine;
            dtoTrans.SHIFT_CLS          = modelHeader.ShiftClass;
            dtoTrans.FOR_MACHINE        = modelHeader.ForMachine;
            dtoTrans.SCREEN_TYPE        = DataDefine.ScreenType.WorkResultEntry.ToNZString();
            dtoTrans.GROUP_TRANS_ID     = modelHeader.WorkResultGroupNo;
            dtoTrans.RESERVE_QTY.Value  = dtoDetailEntry.RESERVE_QTY.NVL(0);
            dtoTrans.NG_REASON          = dtoDetailEntry.NG_REASON;

            return(dtoTrans);
        }
Beispiel #15
0
        public NZString GetConsumptionTransID(NZString transID)
        {
            InventoryTransBIZ       biz = new InventoryTransBIZ();
            InventoryTransactionDTO dto = biz.LoadByRefNoAndTransType(transID, DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Consumption).ToNZString());

            if (dto != null)
            {
                return(dto.TRANS_ID);
            }
            return(new NZString());
        }
Beispiel #16
0
        private List <InventoryTransactionDTO> CreateConsumptionDTO(InventoryTransactionDTO dto)
        {
            List <InventoryTransactionDTO> dtoConList = new List <InventoryTransactionDTO>();
            InventoryTransactionDTO        dtoCon;

            InventoryBIZ biz = new InventoryBIZ();

            // GET LOCATION INFORMATION
            DealingBIZ bizLoc        = new DealingBIZ();
            DealingDTO dtoLoc        = bizLoc.LoadLocation(dto.DEALING_NO);
            bool       AllowNegative = dtoLoc.ALLOW_NEGATIVE.StrongValue == "01";

            //WorkResultController ctrlWR=new WorkResultController ();
            List <WorkResultEntryViewDTO> dtoChildItem = biz.LoadConsumptionListFromItemCode(dto.ITEM_CD, dto.DEALING_NO, dto.QTY);

            for (int j = 0; j < dtoChildItem.Count; j++)
            {
                // GET CONSUMPTION ITEM FROM FIFO PROCESS WRITE BY KIMMIK.
                List <ActualOnhandViewDTO> dtoListActOnhand = biz.FifoListingProcess(Common.CurrentDatabase
                                                                                     , dtoChildItem[j].ITEM_CD.StrongValue, dtoChildItem[j].LOC_CD.StrongValue, dtoChildItem[j].CONSUMPTION_QTY.StrongValue
                                                                                     , !AllowNegative, AllowNegative);
                if (dtoListActOnhand != null && dtoListActOnhand.Count > 0)
                {
                    for (int i = 0; i < dtoListActOnhand.Count; i++)
                    {
                        dtoCon                  = new InventoryTransactionDTO();
                        dtoCon.ITEM_CD          = dtoListActOnhand[i].ITEM_CD;
                        dtoCon.LOC_CD           = dtoListActOnhand[i].LOC_CD;
                        dtoCon.LOT_NO           = dtoListActOnhand[i].LOT_NO;
                        dtoCon.DEALING_NO       = dto.DEALING_NO;
                        dtoCon.TRANS_DATE       = dto.TRANS_DATE;
                        dtoCon.TRANS_CLS.Value  = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Consumption);
                        dtoCon.IN_OUT_CLS.Value = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out);
                        dtoCon.QTY              = dtoListActOnhand[i].ONHAND_QTY;
                        dtoCon.OBJ_ORDER_QTY    = dto.QTY;
                        dtoCon.OBJ_ITEM_CD      = dto.ITEM_CD;
                        dtoCon.REMARK           = dto.REMARK;
                        dtoCon.CRT_BY           = Common.CurrentUserInfomation.UserCD;
                        dtoCon.CRT_MACHINE      = Common.CurrentUserInfomation.Machine;
                        dtoCon.UPD_BY           = Common.CurrentUserInfomation.UserCD;
                        dtoCon.UPD_MACHINE      = Common.CurrentUserInfomation.Machine;
                        dtoCon.SCREEN_TYPE      = DataDefine.ScreenType.ReceivingEntry.ToNZString();
                        dtoCon.REF_NO           = dto.REF_NO;

                        dtoConList.Add(dtoCon);
                    }
                }
            }



            return(dtoConList);
        }
Beispiel #17
0
        private void btnSearchByCustomerCode_Click(object sender, EventArgs e)
        {
            NZString[] LocationType = new NZString[] { (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer),
                                                       (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer) };
            LocationFindDialog dialogLocation = new LocationFindDialog(LocationType);

            dialogLocation.ShowDialog(this);
            if (dialogLocation.IsSelected)
            {
                txtCusCD.Text   = dialogLocation.SelectedItem.LOC_CD.ToString();
                txtCusName.Text = dialogLocation.SelectedItem.LOC_DESC.ToString();
            }
        }
Beispiel #18
0
        public MainWindow()
        {
            DBHelper.DropDB();

            Visible = false;

            DataDefine.InitDataDefine();
            DBHelper.Init();
            GlobalData.InitCommonData();

            InitializeComponent();

            form.Init();
            List <String> stockIdShowed = new List <String>();

            for (int i = 0; i < stocksList.ListMaxSize; ++i)
            {
                string stockId = GlobalData.StocksCode.Rows[i]["stockId"].ToString().PadLeft(7, '0');
                stockIdShowed.Add(stockId);
            }
            GlobalData.CurrentShowList = stockIdShowed;

            routineLoader.Start();

            ReSetCurrentShowed();

            Visible = true;
            Draw();

            FormClosed += new FormClosedEventHandler(OnClosed);

            this.MouseWheel             += new MouseEventHandler(FormMouseWheel);
            menuStrip1.MouseDown        += new MouseEventHandler(FormMouseDown);
            menuStrip1.MouseMove        += new MouseEventHandler(FormMouseMove);
            menuStrip1.MouseUp          += new MouseEventHandler(FormMouseUp);
            stocksList.MouseWheel       += new MouseEventHandler(FormMouseWheel);
            stocksList.MouseDoubleClick += new MouseEventHandler(FormMouseDoubleClick);


            singleGraph.BindFormulaBox(form.FormulaBox);
            form.Graph = singleGraph;

            this.KeyPreview = true;
            this.KeyUp     += new KeyEventHandler(FormKeyUp);
            this.KeyPress  += new KeyPressEventHandler(FormKeyPress);

            StockSearch.ToStock toStockDel = new StockSearch.ToStock(this.ToStock);
            stockSearch1.ToStockDel = toStockDel;
        }
Beispiel #19
0
        private void InitializeLookupData()
        {
            LookupDataBIZ biz            = new LookupDataBIZ();
            LookupData    locationLookup = biz.LoadLookupLocation();

            NZString[] SupplierType = new NZString[] { (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor),
                                                       (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Vendor) };
            LookupData SupplierLookup = biz.LoadLookupLocation(SupplierType);

            cboStoredLoc.LoadLookupData(locationLookup);
            cboSupplierCode.LoadLookupData(SupplierLookup);

            LookupData umClsData = biz.LoadLookupClassType(DataDefine.UM_CLS.ToNZString());

            shtView.Columns[(int)eColView.ORDER_UM_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(umClsData);
            shtView.Columns[(int)eColView.INV_UM_CLS].CellType   = CtrlUtil.CreateReadOnlyPairCellType(umClsData);
        }
Beispiel #20
0
        private bool SaveData()
        {
            IssueByEntryController  ctlIssue      = new IssueByEntryController();
            List <IssueByOrderUIDM> uidmIssueList = new List <IssueByOrderUIDM>();


            NZString FromLocCD   = new NZString(cboFromLoc, cboFromLoc.SelectedValue);
            NZString ToLocCD     = new NZString(cboToLoc, cboToLoc.SelectedValue);
            NZString TranSubCls  = new NZString(cboSubType, cboSubType.SelectedValue);
            NZString RefSlipNo   = new NZString(txtRefDocNo, txtRefDocNo.Text);
            NZString RefSlipNo2  = new NZString(txtJobOrderNo, txtJobOrderNo.Text);
            NZString ForCustomer = new NZString(cboForCustomer, cboForCustomer.SelectedValue);

            int row = shtIssueList.Rows.Count;

            for (int i = 0; i < row; i++)
            {
                IssueByOrderUIDM uidm   = new IssueByOrderUIDM();
                NZString         ItemCD = new NZString(null,
                                                       shtIssueList.Cells[i, (int)eColView.ITEM_CODE].
                                                       Text);
                NZString   LotNo     = new NZString(null, shtIssueList.Cells[i, (int)eColView.LOT_NO].Value);
                NZDecimal  Qty       = new NZDecimal(null, shtIssueList.Cells[i, (int)eColView.ISSUE_QTY].Value);
                NZString   Remark    = new NZString(txtRemark, txtRemark.Text.Trim());
                NZDateTime TransDate = new NZDateTime(dtIssueDate, dtIssueDate.Value);
                uidm.ITEM_CD      = ItemCD;
                uidm.FROM_LOC_CD  = FromLocCD;
                uidm.TO_LOC_CD    = ToLocCD;
                uidm.LOT_NO       = LotNo;
                uidm.QTY          = Qty;
                uidm.REMARK       = Remark;
                uidm.TRANS_DATE   = TransDate;
                uidm.TRANS_CLS    = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Issuing).ToNZString();//TransCls;
                uidm.TRAN_SUB_CLS = TranSubCls;
                uidm.REF_SLIP_NO  = RefSlipNo;
                uidm.REF_SLIP_NO2 = RefSlipNo2;
                uidm.FOR_CUSTOMER = ForCustomer;

                uidmIssueList.Add(uidm);
            }

            ctlIssue.SaveAddIssue(uidmIssueList);

            return(true);
        }
Beispiel #21
0
        public void ValidateBeforeSaveAdd(InventoryTransactionDTO data)
        {
            //Validate Item Code
            ItemValidator itemValidator = new ItemValidator();

            ValidateException.ThrowErrorItem(itemValidator.CheckEmptyItemCode(data.ITEM_CD));

            BusinessException itemNotFound = itemValidator.CheckItemNotExist(data.ITEM_CD);

            if (itemNotFound != null)
            {
                ValidateException.ThrowErrorItem(itemNotFound.Error);
            }
            if (data.TRANS_ID.IsNull)
            {
                if (data.TRANS_CLS.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Receiving))
                {
                    ValidateException.ThrowErrorItem(CheckExistReceiveItem(data.ITEM_CD, data.LOT_NO, data.LOC_CD));
                }
                else
                {
                    ValidateException.ThrowErrorItem(CheckNotExistReceiveItem(data.ITEM_CD, data.LOT_NO, data.LOC_CD));
                }


                ////ถ้า Receive ต้อง check ว่า lot นั้นไม่เคยทำ receive มาก่อน
                //if (model.RECEIVE_TYPE.StrongValue.Equals(DataDefine.eTRANS_TYPE_string.Receiving))
                //{
                //    ValidateException.ThrowErrorItem(receivingValidator.CheckExistReceiveItem(dto.ITEM_CD, dto.LOT_NO));
                //}
                //else
                //{
                //    ValidateException.ThrowErrorItem(receivingValidator.CheckNotExistReceiveItem(dto.ITEM_CD, dto.LOT_NO));
                //}
            }


            //Validate Receive Qty
            if (data.QTY.IsNull || data.QTY.StrongValue <= 0)
            {
                ValidateException.ThrowErrorItem(new ErrorItem(data.QTY.Owner, TKPMessages.eValidate.VLM0043.ToString()));
            }
        }
Beispiel #22
0
        private void InitializeSpread()
        {
            shtMovePartList.ActiveSkin = Common.ACTIVE_SKIN;

            LookupDataBIZ biz = new LookupDataBIZ();

            NZString[] locationtype = new NZString[1];
            locationtype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Production).ToNZString();
            LookupData fromProcess = biz.LoadLookupLocation(locationtype);

            shtMovePartList.Columns[(int)eColView.FROM_PROCESS].CellType = CtrlUtil.CreateReadOnlyPairCellType(fromProcess);

            LookupData toProcess = biz.LoadLookupLocation(locationtype);

            shtMovePartList.Columns[(int)eColView.TO_PROCESS].CellType = CtrlUtil.CreateReadOnlyPairCellType(toProcess);

            LookupData moveReason = biz.LoadLookupClassType(DataDefine.MOVE_REASON.ToNZString());

            shtMovePartList.Columns[(int)eColView.REASON].CellType = CtrlUtil.CreateReadOnlyPairCellType(moveReason);

            LookupData shiftCls = biz.LoadLookupClassType(DataDefine.SHIFT_CLS.ToNZString());

            shtMovePartList.Columns[(int)eColView.SHIFT_CLS].CellType = CtrlUtil.CreateReadOnlyPairCellType(shiftCls);

            shtMovePartList.Columns[(int)eColView.MOVE_DATE].CellType = CtrlUtil.CreateDateTimeCellType();

            shtMovePartList.Columns[(int)eColView.TRANS_ID_FROM].StyleName = DataDefine.EXPORT_LAST.ToString();
            shtMovePartList.Columns[(int)eColView.TRANS_ID_TO].StyleName   = DataDefine.EXPORT_LAST.ToString();
            shtMovePartList.Columns[(int)eColView.CUSTOMER_CD].StyleName   = DataDefine.NO_EXPORT.ToString();
            shtMovePartList.Columns[(int)eColView.WEIGHT].StyleName        = DataDefine.NO_EXPORT.ToString();

            shtMovePartList.Columns[(int)eColView.TRANS_ID_FROM].Visible     = false;
            shtMovePartList.Columns[(int)eColView.TRANS_ID_TO].Visible       = false;
            shtMovePartList.Columns[(int)eColView.CUSTOMER_CD].Visible       = false;
            shtMovePartList.Columns[(int)eColView.SHIFT_CLS_NAME].Visible    = false;
            shtMovePartList.Columns[(int)eColView.FROM_PROCESS_NAME].Visible = false;
            shtMovePartList.Columns[(int)eColView.TO_PROCESS_NAME].Visible   = false;
            shtMovePartList.Columns[(int)eColView.REASON_NAME].Visible       = false;
            shtMovePartList.Columns[(int)eColView.WEIGHT].Visible            = false;

            CtrlUtil.MappingDataFieldWithEnum(shtMovePartList, typeof(eColView));
        }
Beispiel #23
0
        private void UpdateOnhandQtyText()
        {
            NZDecimal onhand = m_controller.GetOnhandQty(
                dtAdjustDate.NZValue,
                txtMasterNo.Text.ToNZString(),
                new NZString(null, cboStoredLoc.SelectedValue),
                new NZString(null, txtLotNo.Text.Trim()));

            if (m_screenMode == eScreenMode.EDIT)
            {
                AdjustmentEntryUIDM model = m_controller.LoadData(m_editTransactionID);
                if (model.AdjustType.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out))
                {
                    InventoryTransBIZ biz = new InventoryTransBIZ();
                    onhand.Value = onhand.StrongValue + biz.LoadByTransactionID(m_editTransactionID).QTY.StrongValue;
                }
            }

            txtOnhandQty.PathValue = onhand.NVL(0);
        }
Beispiel #24
0
        private void LoadLookupCellType()
        {
            LookupDataBIZ bizLookup = new LookupDataBIZ();

            LookupData           machineTypeData = bizLookup.LoadLookupClassType(DataDefine.MACHINE_TYPE.ToNZString());
            ReadOnlyPairCellType cellmachineType = new ReadOnlyPairCellType(machineTypeData, CommonLib.Common.COMBOBOX_SEPERATOR_SYMBOL);

            shtView.Columns[(int)eColView.MACHINE_TYPE].CellType = cellmachineType;

            LookupData           machineProjectData = bizLookup.LoadLookupClassType(DataDefine.MACHINE_PROJECT.ToNZString());
            ReadOnlyPairCellType cellProjectType    = new ReadOnlyPairCellType(machineProjectData, CommonLib.Common.COMBOBOX_SEPERATOR_SYMBOL);

            shtView.Columns[(int)eColView.PROJECT].CellType = cellProjectType;

            NZString[] locationtype = new NZString[1];
            locationtype[0] = DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Production).ToNZString();
            LookupData           locationData = bizLookup.LoadLookupLocation(locationtype);
            ReadOnlyPairCellType cellProcess  = new ReadOnlyPairCellType(locationData, CommonLib.Common.COMBOBOX_SEPERATOR_SYMBOL);

            shtView.Columns[(int)eColView.PROCESS_CD].CellType = cellProcess;
        }
Beispiel #25
0
        private void dtReceiveDate_ValueChanged(object sender, EventArgs e)
        {
            if (dtReceiveDate.Value.HasValue)
            {
                int row = shtView.Rows.Count;
                if (row > 0)
                {
                    RunningNumberBIZ runningNoBiz = new RunningNumberBIZ();

                    for (int i = 0; i < row; i++)
                    {
                        //shtView.Cells[i, (int)eColView.LOT_NO].Value = dtReceiveDate.Value.Value.ToString(DataDefine.LOT_NO_FORMAT);

                        string oLotControlCls = Convert.ToString(shtView.Cells[i, (int)eColView.LOT_CONTROL_CLS].Value);

                        string strItemCode = Convert.ToString(shtView.Cells[i, (int)eColView.ITEM_CD].Value);

                        if (oLotControlCls == DataDefine.Convert2ClassCode(DataDefine.eLOT_CONTROL_CLS.Yes))
                        {
                            //shtView.Cells[row, (int)eColView.LOT_NO].Value = dtReceiveDate.Value.Value.ToString(DataDefine.LOT_NO_FORMAT);

                            if (rdoReceive.Checked)
                            {
                                NZString strLotNoPrefix = runningNoBiz.GenerateLotNoPrefix(new NZDateTime(null, dtReceiveDate.Value));
                                NZInt    iLastRunningNo = runningNoBiz.GetLastLotNoRunningBox(strLotNoPrefix, new NZString(cboStoredLoc, (string)cboStoredLoc.SelectedValue), (NZString)strItemCode, new NZInt(null, 0));

                                ReceivingEntryController rcvController = new ReceivingEntryController();
                                NZString strLotNo = rcvController.GenerateLotNo(strLotNoPrefix, ref iLastRunningNo);
                                shtView.Cells[i, (int)eColView.LOT_NO].Value = strLotNo.StrongValue;
                            }
                        }
                        else
                        {
                            shtView.Cells[i, (int)eColView.LOT_NO].Value = null;
                        }
                    }
                }
            }
        }
Beispiel #26
0
        //public ErrorItem CheckInputLot(NZString itemCode, NZString lotNo) {
        //    ItemBIZ biz = new ItemBIZ();
        //    ItemDTO dto = biz.LoadItem(itemCode);

        //    switch (DataDefine.ConvertValue2Enum<DataDefine.eLOT_CONTROL_CLS>(dto.LOT_CONTROL_CLS.StrongValue)) {
        //        case DataDefine.eLOT_CONTROL_CLS.No:
        //            if (!lotNo.IsNull || lotNo.StrongValue != string.Empty) {
        //                return new ErrorItem(lotNo.Owner, TKPMessages.eValidate.VLM0065.ToString());
        //            }
        //            break;
        //        case DataDefine.eLOT_CONTROL_CLS.Yes:
        //            if (lotNo.IsNull || lotNo.StrongValue.Trim() == String.Empty) {
        //                return new ErrorItem(lotNo.Owner, TKPMessages.eValidate.VLM0050.ToString(), new object[] { itemCode.StrongValue });
        //            }
        //            break;
        //    }

        //    return null;
        //}
        #endregion

        #region Business Validate
        /// <summary>
        /// Validate data before load consumption list.
        /// </summary>
        /// <param name="itemCode"></param>
        /// <param name="orderLocation"></param>
        /// <param name="qty"></param>
        public void ValidateBeforeLoadConsumption(NZString itemCode, NZString orderLocation, NZDecimal qty, NZString ConsumptionCls)
        {
            //== Check ItemCode.
            ItemValidator itemValidator = new ItemValidator();

            ValidateException.ThrowErrorItem(itemValidator.CheckEmptyItemCode(itemCode));

            BusinessException businessException = itemValidator.CheckItemNotExist(itemCode);

            if (businessException != null)
            {
                ValidateException.ThrowErrorItem(businessException.Error);
            }

            //== Check Order Location.
            DealingValidator locationValidator = new DealingValidator();

            if (ConsumptionCls.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eCONSUMPTION_CLS.Manual))
            {
                ValidateException.ThrowErrorItem(locationValidator.CheckEmptyLocationCode(orderLocation));
                ValidateException.ThrowErrorItem(locationValidator.CheckNotExistsLocationCode(orderLocation));
            }
        }
Beispiel #27
0
        public MultiWorkResultEntryUIDM LoadForEditMultiWorkResult(NZString transID)
        {
            //== Load Header (Work Result)
            InventoryTransBIZ bizInventoryTransaction = new InventoryTransBIZ();
            InventoryBIZ      bizInventory            = new InventoryBIZ();


            ItemBIZ bizItem = new ItemBIZ();

            InventoryTransactionDTO transDTO = bizInventoryTransaction.LoadByTransactionID(transID);

            if (transDTO == null)
            {
                return(null);
            }


            //เอา transDTO ไปหา group
            //แล้วก็ group -> แปลงเป็น column ตาม spread


            ItemDTO        dtoItem        = bizItem.LoadItem(transDTO.ITEM_CD);
            ItemProcessDTO dtoItemProcess = bizItem.LoadItemProcess(transDTO.ITEM_CD);

            MultiWorkResultEntryUIDM model = new MultiWorkResultEntryUIDM();

            //model.ChildItemCode = ;// ต้องไปดึงมาจาก consumption ตัวแรก
            //model.OrderLoc=;

            //model.CONSUMTION_CLS = dtoItemProcess.CONSUMTION_CLS;
            model.ForMachine        = transDTO.FOR_MACHINE;
            model.ItemCode          = transDTO.ITEM_CD;
            model.ItemDesc          = dtoItem.ITEM_DESC;
            model.Remark            = transDTO.REMARK;
            model.ShiftClass        = transDTO.SHIFT_CLS;
            model.StoredLoc         = transDTO.LOC_CD;
            model.TRAN_SUB_CLS      = transDTO.TRAN_SUB_CLS;
            model.WorkOrderNo       = transDTO.REF_SLIP_NO;
            model.WorkResultDate    = transDTO.TRANS_DATE;
            model.WorkResultGroupNo = transDTO.GROUP_TRANS_ID;

            List <InventoryTransactionDTO> listTrans = bizInventoryTransaction.LoadGroupTransaction(transDTO.GROUP_TRANS_ID, DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.WorkResult).ToNZString());

            //new list ของ multi work result เพื่อใส่ข้อมูล เป็น row ก่อน
            //แล้วพอวนใส่เสร็จค่อย convert เป็น datatable เพื่อ set value ให้ model.DataView
            List <MultiWorkResultEntryViewDTO> listMultiWorkResult = new List <MultiWorkResultEntryViewDTO>();



            foreach (InventoryTransactionDTO dtoTran in listTrans)
            {
                MultiWorkResultEntryViewDTO multiDTO = new MultiWorkResultEntryViewDTO();
                multiDTO.GOOD_QTY            = dtoTran.QTY;
                multiDTO.GOOD_TRANSACTION_ID = dtoTran.TRANS_ID;
                //multiDTO.LOT_NO = dtoTran.LOT_NO;
                multiDTO.NG_QTY    = dtoTran.NG_QTY;
                multiDTO.NG_REASON = dtoTran.NG_REASON;

                multiDTO.RESERVE_QTY    = dtoTran.RESERVE_QTY;
                multiDTO.WORK_RESULT_NO = dtoTran.SLIP_NO;

                InventoryTransactionDTO dtoNGTrans = bizInventoryTransaction.LoadNGWorkResult(dtoTran.SLIP_NO);
                if (dtoNGTrans != null && !dtoNGTrans.TRANS_ID.IsNull)
                {
                    multiDTO.NG_TRANSACTION_ID = dtoNGTrans.TRANS_ID;
                }

                InventoryTransactionDTO dtoReserveTrans = bizInventoryTransaction.LoadReserveResult(dtoTran.SLIP_NO);
                if (dtoReserveTrans != null && !dtoReserveTrans.TRANS_ID.IsNull)
                {
                    multiDTO.RESERVE_TRANSACTION_ID = dtoReserveTrans.TRANS_ID;
                }



                List <WorkResultEntryViewDTO> consumptionList = bizInventory.LoadWorkResultConsumptionList(dtoTran.SLIP_NO);
                if (consumptionList != null && consumptionList.Count == 1)
                {
                    //model.OrderLoc = consumptionList[0].LOC_CD;
                    //model.ChildItemCode = consumptionList[0].ITEM_CD;
                    //multiDTO.CONSUMPTION_TRANSACTION_ID = consumptionList[0].TRANS_ID;
                    //multiDTO.ON_HAND_QTY = consumptionList[0].ON_HAND_QTY;
                    //multiDTO.LOT_NO = consumptionList[0].LOT_NO;
                }
                else
                {
                    throw new NotSupportedException("Comsumption != 1 item");
                    //if (dtoItemProcess != null)
                    //    model.OrderLoc = dtoItemProcess.ORDER_LOC_CD;
                }


                //multiDTO.ON_HAND_QTY = new NZDecimal(null, 0);//onhand + good + ng + reserve
                //ActualOnhandViewDTO onhandConsumption = bizInventory.LoadActualInventoryOnHand(model.ChildItemCode, model.OrderLoc, multiDTO.LOT_NO);
                //if (onhandConsumption == null)
                //{
                //    multiDTO.ON_HAND_QTY.Value = multiDTO.GOOD_QTY.NVL(0) + multiDTO.NG_QTY.NVL(0) + multiDTO.RESERVE_QTY.NVL(0);
                //}
                //else
                //{
                //    multiDTO.ON_HAND_QTY.Value = onhandConsumption.ONHAND_QTY.NVL(0) + multiDTO.GOOD_QTY.NVL(0) + multiDTO.NG_QTY.NVL(0) + multiDTO.RESERVE_QTY.NVL(0);
                //}



                listMultiWorkResult.Add(multiDTO);
            }

            model.DataView = DTOUtility.ConvertListToDataTable <MultiWorkResultEntryViewDTO>(listMultiWorkResult);

            model.DataView.AcceptChanges();
            return(model);
        }
Beispiel #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <returns>If save data operation completed will return true. Otherwise return false.</returns>
        public bool SaveData(WorkResultEntryUIDM model, DataDefine.eCONSUMPTION_CLS ConsumptionClass)
        {
            ItemBIZ             bizItem      = new ItemBIZ();
            ClassListBIZ        bizClassList = new ClassListBIZ();
            InventoryBIZ        biz          = new InventoryBIZ();
            IssueEntryValidator valLot       = new IssueEntryValidator();
            // Load default over consumption checking.
            ClassListDTO dtoOverConsumptionCheck = bizClassList.LoadByPK((NZString)DataDefine.OVER_CONSUME_CHK, (NZString)DataDefine.Convert2ClassCode(DataDefine.eOVER_CONSUME_CHK.DEFAULT));
            bool         bOverConsumeChk         = false;

            if (dtoOverConsumptionCheck != null && dtoOverConsumptionCheck.CLS_DESC.NVL(String.Empty) == "1")
            {
                bOverConsumeChk = true;
            }


            //string mode = "UPD";
            //if (model.WorkOrderNo.IsNull)
            //{
            //    mode = "ADD";
            //}

            #region Validate data
            //== Validate Header, contain: ItemCode, Order Location and Qty.
            #region Validate mandatory
            WorkResultEntryValidator workResultEntryValidator = new WorkResultEntryValidator();
            ItemValidator            itemValidator            = new ItemValidator();
            DealingValidator         locationValidator        = new DealingValidator();
            CommonBizValidator       commonVal = new CommonBizValidator();
            ValidateException.ThrowErrorItem(workResultEntryValidator.CheckWorkResultDate(model.WorkResultDate));
            ValidateException.ThrowErrorItem(itemValidator.CheckEmptyItemCode(model.ItemCode));
            ValidateException.ThrowErrorItem(workResultEntryValidator.CheckEmptyShiftType(model.ShipClass));
            ValidateException.ThrowErrorItem(workResultEntryValidator.CheckDifferentLocationOfItem(model.DataView));

            BusinessException itemFound = itemValidator.CheckItemNotExist(model.ItemCode);
            if (itemFound != null)
            {
                ValidateException.ThrowErrorItem(itemFound.Error);
            }
            if (ConsumptionClass != DataDefine.eCONSUMPTION_CLS.No)
            {
                ValidateException.ThrowErrorItem(locationValidator.CheckEmptyLocationCode(model.OrderLoc));
                ValidateException.ThrowErrorItem(locationValidator.CheckNotExistsLocationCode(model.OrderLoc));
            }

            ValidateException.ThrowErrorItem(locationValidator.CheckEmptyLocationCode(model.StoredLoc));
            ValidateException.ThrowErrorItem(locationValidator.CheckNotExistsLocationCode(model.StoredLoc));
            ValidateException.ThrowErrorItem(workResultEntryValidator.CheckWorkResultQty(model.WorkResultQty));
            ValidateException.ThrowErrorItem(workResultEntryValidator.CheckWorkResultGoodQty((NZDecimal)(model.WorkResultQty.StrongValue - model.NGQty.StrongValue)));

            // Check LotNo
            ValidateException.ThrowErrorItem(commonVal.CheckInputLot(model.ItemCode, new NZString(), model.LotNo, false));
            #endregion

            //== Validate Detail list.
            if (ConsumptionClass == DataDefine.eCONSUMPTION_CLS.Manual)
            {
                List <WorkResultEntryViewDTO> listItems = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(model.DataView);

                #region Validate detail list.
                // Check ItemCD & LotNo
                List <string> listInvalidLotNo          = new List <string>();
                List <string> listInvalidConsumptionQty = new List <string>();

                for (int i = 0; i < listItems.Count; i++)
                {
                    BusinessException itemChildNotFound = itemValidator.CheckItemNotExist(listItems[i].ITEM_CD);
                    if (itemChildNotFound != null)
                    {
                        ValidateException.ThrowErrorItem(itemChildNotFound.Error);
                    }

                    ItemDTO dtoItem             = bizItem.LoadItem(listItems[i].ITEM_CD);
                    WorkResultEntryViewDTO line = listItems[i];
                    //line.LOT_CONTROL_CLS = dtoItem.LOT_CONTROL_CLS;

                    if (line.LOT_CONTROL_CLS.StrongValue == DataDefine.Convert2ClassCode(DataDefine.eLOT_CONTROL_CLS.Yes) &&
                        (line.LOT_NO.IsNull || line.LOT_NO.StrongValue.Trim() == string.Empty))
                    {
                        if (listInvalidLotNo.Contains(line.ITEM_CD.StrongValue))
                        {
                            continue;
                        }
                        listInvalidLotNo.Add(line.ITEM_CD.StrongValue);
                    }

                    if (bOverConsumeChk)
                    {
                        if (line.CONSUMPTION_QTY.StrongValue > line.ON_HAND_QTY.StrongValue)
                        {
                            if (listInvalidConsumptionQty.Contains(line.ITEM_CD.StrongValue))
                            {
                                continue;
                            }
                            listInvalidConsumptionQty.Add(line.ITEM_CD.StrongValue);
                        }
                    }
                    ValidateException.ThrowErrorItem(commonVal.CheckInputLot(line.ITEM_CD, line.LOC_CD, line.LOT_NO, true));
                }

                // Generate item doesn't input LOT_NO
                if (listInvalidLotNo.Count > 0)
                {
                    listInvalidLotNo.Sort();

                    string errorItems = string.Empty;
                    for (int i = 0; i < listInvalidLotNo.Count; i++)
                    {
                        if (i != 0)
                        {
                            errorItems += ", ";
                        }
                        errorItems += listInvalidLotNo[i];
                    }

                    ValidateException.ThrowErrorItem(new ErrorItem(null, TKPMessages.eValidate.VLM0050.ToString(), new object[] { errorItems }));
                    return(false);
                }


                // Generate list item that input consumption qty more than stock onhand qty.
                if (listInvalidConsumptionQty.Count > 0)
                {
                    listInvalidConsumptionQty.Sort();

                    string errorItems = string.Empty;
                    for (int i = 0; i < listInvalidConsumptionQty.Count; i++)
                    {
                        if (i != 0)
                        {
                            errorItems += ", ";
                        }
                        errorItems += listInvalidConsumptionQty[i];
                    }

                    ValidateException.ThrowErrorItem(new ErrorItem(null, TKPMessages.eValidate.VLM0051.ToString(), new object[] { errorItems }));
                    return(false);
                }
                #endregion

                // Validate Child Item to support Parent Item.
                #region Validate Child Item to support Parent item.
                // Summary Consumption Qty by Item (not include LotNo) and then check compare with RequestQty.
                InventoryBIZ bizInventory = new InventoryBIZ();
                List <WorkResultEntryViewDTO> listSourceChildItems = bizInventory.LoadConsumptionListFromItemCode(model.ItemCode, model.OrderLoc, model.WorkResultQty);
                for (int i = 0; i < listSourceChildItems.Count; i++)
                {
                    object objSumByItem = model.DataView.Compute(
                        String.Format("SUM({0})", WorkResultEntryViewDTO.eColumns.CONSUMPTION_QTY),
                        String.Format("{0} = '{1}'", WorkResultEntryViewDTO.eColumns.ITEM_CD, listSourceChildItems[i].ITEM_CD.StrongValue)
                        );



                    decimal sumConsumptionQty = 0;
                    if (objSumByItem != null && objSumByItem != DBNull.Value)
                    {
                        sumConsumptionQty = Convert.ToDecimal(objSumByItem);
                    }

                    decimal diffQty = Math.Abs(sumConsumptionQty - listSourceChildItems[i].CONSUMPTION_QTY.StrongValue);
                    if (sumConsumptionQty < listSourceChildItems[i].REQUEST_QTY.StrongValue)  // Total of ConsumtpionQty < RequestQty
                    {
                        // Confirmation to continue save.
                        MessageDialogResult dr = MessageDialog.ShowConfirmation(null, Message.LoadMessage(TKPMessages.eConfirm.CFM0001.ToString(),
                                                                                                          new object[]
                        {
                            listSourceChildItems[i].ITEM_CD.StrongValue,
                            model.ItemCode.StrongValue,
                            diffQty.ToString(DataDefine.DEFAULT_FORMAT_NUMBER)
                        }),
                                                                                MessageDialogButtons.YesNo);

                        if (dr == MessageDialogResult.No)
                        {
                            return(false);
                        }
                    }
                    else if (sumConsumptionQty > listSourceChildItems[i].REQUEST_QTY.StrongValue)  // Total of ConsumtpionQty > RequestQty
                    {
                        // Confirmation to continue save.
                        MessageDialogResult dr = MessageDialog.ShowConfirmation(null, Message.LoadMessage(TKPMessages.eConfirm.CFM0002.ToString(),
                                                                                                          new object[]
                        {
                            listSourceChildItems[i].ITEM_CD.StrongValue,
                            model.ItemCode.StrongValue,
                            diffQty.ToString(DataDefine.DEFAULT_FORMAT_NUMBER)
                        }),
                                                                                MessageDialogButtons.YesNo);

                        if (dr == MessageDialogResult.No)
                        {
                            return(false);
                        }
                    }
                }
                #endregion
            }

            #endregion
            DataTable dtData;
            if (model.DataView == null)
            {
                WorkResultEntryViewDTO dto = new WorkResultEntryViewDTO();
                dto.CreateDataTableSchema(out dtData);
            }
            else
            {
                dtData = model.DataView;
            }


            DataTable dtAdd    = dtData.GetChanges(DataRowState.Added);
            DataTable dtUpdate = dtData.GetChanges(DataRowState.Modified);
            DataTable dtDelete = dtData.GetChanges(DataRowState.Deleted);

            List <InventoryTransactionDTO> listAdd    = new List <InventoryTransactionDTO>();
            List <InventoryTransactionDTO> listUpdate = new List <InventoryTransactionDTO>();
            List <InventoryTransactionDTO> listDelete = new List <InventoryTransactionDTO>();
            Database db = null;
            try
            {
                db = Common.CurrentDatabase;
                db.KeepConnection = true;
                db.BeginTransaction();

                //TransactionValidator valTran = new TransactionValidator();
                //InventoryTransBIZ bizTran = new InventoryTransBIZ();
                //bizTran.l

                #region Header
                NZString runningNo = new NZString();

                //ให้ generate lot ใหม่อีกครั้ง กรณีกรอกพร้อมกัน 2 เครื่อง ไม่งั้นมันจะ insert ข้อมูลมั่ว
                // ที่ใส่ตรงนี้เพราะว่า จะได้แก้ model.LotNo ก่อนที่จะสร้าง  object dto
                //เนื่องจาก reserve ก็มีดึง lot no ไปใช้
                if (model.WorkResultNo.IsNull)
                {
                    RunningNumberBIZ runnningBiz      = new RunningNumberBIZ();
                    NZString         strCompleteLotNo = runnningBiz.GetCompleteLotNo(new NZDateTime(null, model.WorkResultDate.StrongValue), model.StoredLoc, model.ItemCode, new NZInt(null, 0));
                    model.LotNo = strCompleteLotNo;
                }

                InventoryTransactionDTO dtoWorkResult    = CreateDTOForWorkResult(model);
                InventoryTransactionDTO dtoNGResult      = CreateDTOForNGResult(model);
                InventoryTransactionDTO dtoReserveResult = CreateDTOForReserveResult(model);

                InventoryTransBIZ bizTran = new InventoryTransBIZ();
                bizTran.LockRefSlipNumber(dtoWorkResult.REF_SLIP_NO);

                if (model.WorkResultNo.IsNull)
                {
                    RunningNumberBIZ runningNumberBIZ = new RunningNumberBIZ();
                    runningNo = runningNumberBIZ.GetCompleteRunningNo((NZString)"WORK_RESULT_SLIP_NO", (NZString)"TB_INV_TRANS_TR");

                    // Create new transaction.
                    dtoWorkResult.SLIP_NO    = runningNo;
                    dtoNGResult.SLIP_NO      = runningNo;
                    dtoReserveResult.SLIP_NO = runningNo;

                    listAdd.Add(dtoWorkResult);
                    if (model.NGQty.NVL(0) > 0)
                    {
                        listAdd.Add(dtoNGResult);
                    }

                    if (model.ReserveQty.NVL(0) > 0)
                    {
                        listAdd.Add(dtoReserveResult);
                    }
                }
                else
                {
                    // Update old transaction
                    runningNo = model.WorkResultNo;

                    listUpdate.Add(dtoWorkResult);

                    if (!model.NGTransactionID.IsNull) // UPDATE NG IF IT ALREADY HAS NG QTY
                    {
                        listUpdate.Add(dtoNGResult);
                    }
                    else if (model.NGQty.NVL(0) > 0) // ADD NEW NG TRANS IF NEW NG IS INPUT
                    {
                        //dtoNGResult.SLIP_NO = dtoWorkResult.SLIP_NO;
                        listAdd.Add(dtoNGResult);
                    }

                    if (!model.ReserveTransactionID.IsNull) // UPDATE Reserve IF IT ALREADY HAS Reserve QTY
                    {
                        listUpdate.Add(dtoReserveResult);
                    }
                    else if (model.ReserveQty.NVL(0) > 0) // ADD NEW Reserve TRANS IF NEW NG IS INPUT
                    {
                        //dtoReserveResult.SLIP_NO = dtoWorkResult.SLIP_NO;
                        listAdd.Add(dtoNGResult);
                    }
                }

                #endregion

                #region Detail

                #region Do Auto Consumption
                if (ConsumptionClass == DataDefine.eCONSUMPTION_CLS.Auto)
                {
                    // WHEN CONSUMPTION IS AUTO
                    // DELETE ALL OLD TRANSACTION FIRST THEN ADD NEW

                    //Modify by Bunyapat L.
                    //28 Apr 2011
                    //ให้สั่ง ClearConsumption ไปเลย
                    List <WorkResultEntryViewDTO>  listTMPDelete = null;
                    List <InventoryTransactionDTO> listTmpDelete = null;

                    if (dtData != null && dtData.Rows.Count > 0)
                    {
                        listTMPDelete = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(dtData);
                        listTmpDelete = new List <InventoryTransactionDTO>();
                        for (int i = 0; i < listTMPDelete.Count; i++)
                        {
                            WorkResultEntryViewDTO  line = listTMPDelete[i];
                            InventoryTransactionDTO dto  = CreateDTOForConsumption(model, line);
                            dto.REF_NO = runningNo;

                            listTmpDelete.Add(dto);
                        }

                        // Move to delete below section
                        //biz.WorkResultItems(Common.CurrentDatabase, null, null, listTmpDelete);
                    }

                    biz.ClearConsumption(Common.CurrentDatabase, dtoWorkResult);

                    if (dtData != null && dtData.Rows.Count > 0)
                    {
                        List <WorkResultEntryViewDTO> listTMPAdd = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(dtData);

                        // GET LOCATION INFORMATION
                        DealingBIZ bizLoc = new DealingBIZ();
                        for (int i = 0; i < listTMPAdd.Count; i++)
                        {
                            DealingDTO dtoLoc        = bizLoc.LoadLocation(listTMPAdd[i].LOC_CD);
                            bool       AllowNegative = dtoLoc.ALLOW_NEGATIVE.StrongValue == "01";


                            // GET CONSUMPTION ITEM FROM FIFO PROCESS WRITE BY KIMMIK.
                            List <ActualOnhandViewDTO> dtoListActOnhand = biz.FifoListingProcess(Common.CurrentDatabase
                                                                                                 , listTMPAdd[i].ITEM_CD.StrongValue, listTMPAdd[i].LOC_CD.StrongValue
                                                                                                 , listTMPAdd[i].CONSUMPTION_QTY.StrongValue
                                                                                                 , !AllowNegative, AllowNegative);
                            if (dtoListActOnhand != null && dtoListActOnhand.Count > 0)
                            {
                                for (int j = 0; j < dtoListActOnhand.Count; j++)
                                {
                                    InventoryTransactionDTO dto = CreateDTOForConsumption(model, dtoListActOnhand[j]);
                                    dto.REF_NO = runningNo;

                                    listAdd.Add(dto);
                                }
                            }
                        }
                    }
                    biz.WorkResultItems(Common.CurrentDatabase, listAdd, listUpdate, listDelete);
                }
                #endregion

                #region Do Manual Consumption
                if (ConsumptionClass == DataDefine.eCONSUMPTION_CLS.Manual)
                {
                    List <InventoryTransactionDTO> listTmpDelete = new List <InventoryTransactionDTO>();
                    //== Update process.
                    //Modify by Bunyapat L.
                    //28 Apr 2011
                    //Manual consumption ให้ใช้การ insert เข้า Delete ทุกตัวที่เป็นตัวเก่า
                    //แล้วค่อย Add ตัวใหม่แทน เพราะข้างใน function มันจะทำการ clear consumption ทั้งหมด ไม่งั้นจะเกิด bug ตอน update
                    if (dtUpdate != null && dtUpdate.Rows.Count > 0)
                    {
                        List <WorkResultEntryViewDTO> listViewUpdate = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(dtUpdate);


                        for (int i = 0; i < listViewUpdate.Count; i++)
                        {
                            WorkResultEntryViewDTO line = listViewUpdate[i];

                            // Copy ค่า Header จาก Model ไปยัง DTO แต่ละตัว
                            InventoryTransactionDTO dto = CreateDTOForConsumption(model, line);
                            dto.REF_NO = runningNo;

                            //listUpdate.Add(dto);
                            listAdd.Add(dto);
                            listTmpDelete.Add((InventoryTransactionDTO)dto.Clone());
                        }
                    }

                    //== Insert process.
                    if (dtAdd != null && dtAdd.Rows.Count > 0)
                    {
                        List <WorkResultEntryViewDTO> listViewAdd = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(dtAdd);

                        for (int i = 0; i < listViewAdd.Count; i++)
                        {
                            WorkResultEntryViewDTO  line = listViewAdd[i];
                            InventoryTransactionDTO dto  = CreateDTOForConsumption(model, line);
                            dto.REF_NO = runningNo;

                            listAdd.Add(dto);
                        }
                    }


                    //== Delete process.
                    if (dtDelete != null && dtDelete.Rows.Count > 0)
                    {
                        List <WorkResultEntryViewDTO> listViewDelete = DTOUtility.ConvertDataTableToList <WorkResultEntryViewDTO>(dtDelete);
                        for (int i = 0; i < dtDelete.Rows.Count; i++)
                        {
                            WorkResultEntryViewDTO line = listViewDelete[i];

                            // Copy ค่า Header จาก Model ไปยัง DTO แต่ละตัว
                            InventoryTransactionDTO dto = CreateDTOForConsumption(model, line);
                            dto.REF_NO = runningNo;

                            listDelete.Add(dto);
                        }
                    }
                    biz.WorkResultItems(Common.CurrentDatabase, null, null, listTmpDelete);
                    biz.WorkResultItems(Common.CurrentDatabase, listAdd, listUpdate, listDelete);
                }
                #endregion

                #region Do No Consumption
                if (ConsumptionClass == DataDefine.eCONSUMPTION_CLS.No)
                {
                    biz.WorkResultItems(Common.CurrentDatabase, listAdd, listUpdate, listDelete);
                }
                #endregion
                #endregion

                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
            finally
            {
                if (db.DBConnectionState == ConnectionState.Open)
                {
                    db.Close();
                }
            }

            return(true);
        }
Beispiel #29
0
        private void InitialComboBox()
        {
            cboToLoc.Format       += Common.ComboBox_Format;
            cboFromLoc.Format     += Common.ComboBox_Format;
            cboForCustomer.Format += CommonLib.Common.ComboBox_Format;
            cboSubType.Format     += CommonLib.Common.ComboBox_Format;

            LookupDataBIZ bizLookup = new LookupDataBIZ();
            // Lookup From Loc
            LookupData lookupLocationFrom = bizLookup.LoadLookupLocation();

            cboFromLoc.LoadLookupData(lookupLocationFrom);
            // Lookup To Loc
            LookupData lookupLocationTo = bizLookup.LoadLookupLocation();

            cboToLoc.LoadLookupData(lookupLocationTo);

            // Lookup To CustomerLocation
            LookupData lookupCustomer = bizLookup.LoadLookupLocation(new NZString[] { (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.Customer)
                                                                                      , (NZString)DataDefine.Convert2ClassCode(DataDefine.eLOCATION_CLS.CustomerVendor) });

            cboForCustomer.LoadLookupData(lookupCustomer);

            // Lookup SubType
            LookupData lookupSubType = bizLookup.LoadLookupClassType(new NZString(null, "ISSUE_SUBTYPE"));

            cboSubType.LoadLookupData(lookupSubType);
        }
Beispiel #30
0
        public void SaveNewPacking(PackingEntryUIDM data, int NumberOfBox)
        {
            try
            {
                #region Validate

                ItemValidator itemValidator = new ItemValidator();
                ValidateException.ThrowErrorItem(itemValidator.CheckEmptyItemCode(data.MASTER_NO));

                BusinessException businessException = itemValidator.CheckItemNotExist(data.MASTER_NO);
                if (businessException != null)
                {
                    ValidateException.ThrowErrorItem(businessException.Error);
                }

                #endregion

                InventoryBIZ biz = new InventoryBIZ();

                SysConfigBIZ sysBiz                = new SysConfigBIZ();
                SysConfigDTO defaultSourceLoc      = sysBiz.LoadByPK(DataDefine.eSYSTEM_CONFIG.TRN320.SYS_GROUP_ID, (NZString)DataDefine.eSYSTEM_CONFIG.TRN320.SYS_KEY.SOURCE_LOC.ToString());
                SysConfigDTO defaultDestinationLoc = sysBiz.LoadByPK(DataDefine.eSYSTEM_CONFIG.TRN320.SYS_GROUP_ID, (NZString)DataDefine.eSYSTEM_CONFIG.TRN320.SYS_KEY.DEST_LOC.ToString());

                InventoryTransactionDTO        Source          = new InventoryTransactionDTO();
                List <InventoryTransactionDTO> DestinationList = new List <InventoryTransactionDTO>();

                #region Destination

                foreach (DataRow dr in data.DATA_VIEW.Rows)
                {
                    InventoryTransactionDTO dto = new InventoryTransactionDTO();
                    dto.CRT_BY = Common.CurrentUserInfomation.UserCD;
                    //dto.CRT_DATE
                    dto.CRT_MACHINE = Common.CurrentUserInfomation.Machine;
                    dto.UPD_BY      = Common.CurrentUserInfomation.UserCD;
                    //dto.UPD_DATE
                    dto.UPD_MACHINE = Common.CurrentUserInfomation.Machine;
                    //dto.TRANS_ID
                    dto.ITEM_CD         = data.MASTER_NO;
                    dto.LOC_CD          = defaultDestinationLoc.CHAR_DATA;
                    dto.LOT_NO          = new NZString(null, dr[(int)PackingEntryUIDM.eColView.LOT_NO]);
                    dto.FG_NO           = data.FG_NO;
                    dto.PACK_NO         = data.PACK_NO;
                    dto.EXTERNAL_LOT_NO = new NZString(null, dr[(int)PackingEntryUIDM.eColView.EXTERNAL_LOT_NO]);
                    dto.TRANS_DATE      = data.PACKING_DATE;
                    dto.TRANS_CLS       = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Packing).ToNZString();
                    dto.IN_OUT_CLS      = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.In).ToNZString();
                    dto.FG_NO           = data.FG_NO;

                    if (dr[(int)PackingEntryUIDM.eColView.QTY] == null ||
                        dr[(int)PackingEntryUIDM.eColView.QTY] == (object)DBNull.Value)
                    {
                        dto.QTY = new NZDecimal(null, 0);
                    }
                    else
                    {
                        dto.QTY = new NZDecimal(null, dr[(int)PackingEntryUIDM.eColView.QTY]);
                    }

                    //dto.WEIGHT
                    //dto.OBJ_ITEM_CD
                    //dto.OBJ_ORDER_QTY
                    //dto.REF_NO
                    //dto.REF_SLIP_NO
                    //dto.REF_SLIP_CLS
                    //dto.OTHER_DL_NO
                    //dto.SLIP_NO
                    dto.REMARK = data.REMARK;
                    //dto.DEALING_NO
                    //dto.PRICE
                    //dto.AMOUNT
                    //dto.FOR_CUSTOMER
                    //dto.FOR_MACHINE
                    dto.SHIFT_CLS = data.SHIFT_CLS;
                    //dto.REF_SLIP_NO2
                    //dto.NG_QTY
                    //dto.NG_WEIGHT
                    //dto.TRAN_SUB_CLS =
                    dto.SCREEN_TYPE = DataDefine.ScreenType.PackingEntry.ToNZString();
                    //dto.GROUP_TRANS_ID
                    //dto.RESERVE_QTY
                    //dto.RETURN_QTY
                    //dto.NG_REASON
                    dto.EFFECT_STOCK = new NZInt(null, (int)DataDefine.eEFFECT_STOCK.In);
                    //dto.LOT_REMARK
                    dto.PERSON_IN_CHARGE = data.PERSON_IN_CHARGE;
                    //dto.CURRENCY
                    //dto.REWORK_FLAG
                    dto.OLD_DATA = new NZInt(null, 0);
                    //dto.TIME_STAMP

                    DestinationList.Add(dto);
                }

                #endregion

                #region Pack

                Source.CRT_BY = Common.CurrentUserInfomation.UserCD;
                //Source.CRT_DATE
                Source.CRT_MACHINE = Common.CurrentUserInfomation.Machine;
                Source.UPD_BY      = Common.CurrentUserInfomation.UserCD;
                //Source.UPD_DATE
                Source.UPD_MACHINE = Common.CurrentUserInfomation.Machine;
                //Source.TRANS_ID
                Source.ITEM_CD = data.MASTER_NO;
                Source.LOC_CD  = defaultSourceLoc.CHAR_DATA;
                //Source.LOT_NO
                Source.FG_NO   = data.FG_NO;
                Source.PACK_NO = data.PACK_NO;
                //Source.EXTERNAL_LOT_NO
                Source.TRANS_DATE = data.PACKING_DATE;
                Source.TRANS_CLS  = DataDefine.Convert2ClassCode(DataDefine.eTRANS_TYPE.Packing_Consumption).ToNZString();
                Source.IN_OUT_CLS = DataDefine.Convert2ClassCode(DataDefine.eIN_OUT_CLASS.Out).ToNZString();
                Source.QTY        = data.TOTAL_QTY;
                //Source.WEIGHT
                //Source.OBJ_ITEM_CD
                //Source.OBJ_ORDER_QTY
                //Source.REF_NO
                //Source.REF_SLIP_NO
                //Source.REF_SLIP_CLS
                //Source.OTHER_DL_NO
                //Source.SLIP_NO
                Source.REMARK = data.REMARK;
                //Source.DEALING_NO
                //Source.PRICE
                //Source.AMOUNT
                //Source.FOR_CUSTOMER
                //Source.FOR_MACHINE
                Source.SHIFT_CLS = data.SHIFT_CLS;
                //Source.REF_SLIP_NO2
                //Source.NG_QTY
                //Source.NG_WEIGHT
                //Source.TRAN_SUB_CLS =
                Source.SCREEN_TYPE = DataDefine.ScreenType.PackingEntry.ToNZString();
                //Source.GROUP_TRANS_ID
                //Source.RESERVE_QTY
                //Source.RETURN_QTY
                //Source.NG_REASON
                Source.EFFECT_STOCK = new NZInt(null, (int)DataDefine.eEFFECT_STOCK.Out);
                //Source.LOT_REMARK
                Source.PERSON_IN_CHARGE = data.PERSON_IN_CHARGE;
                //Source.CURRENCY
                //Source.REWORK_FLAG
                Source.OLD_DATA = new NZInt(null, 0);
                //Source.TIME_STAMP

                #endregion

                biz.AddPacking(DestinationList, Source, NumberOfBox);
            }
            catch (Exception)
            {
                throw;
            }
        }