예제 #1
0
        public void  CancelCommitment(DataTable pdtbData, int pintCCNID)
        {
            const string Cancel = "Cancel", True = "True";
            SO_CommitInventoryDetailDS dsCommitDetail = new SO_CommitInventoryDetailDS();
            UtilsBO boUtils = new UtilsBO();

            foreach (DataRow drowData in pdtbData.Rows)
            {
                if ((drowData.RowState == DataRowState.Modified) && (drowData[Cancel].ToString() == True))
                {
                    decimal decRate       = boUtils.GetUMRate(int.Parse(drowData[SO_CommitInventoryDetailTable.SELLINGUMID_FLD].ToString()), int.Parse(drowData[ITM_ProductTable.STOCKUMID_FLD].ToString()));
                    int     intProductID  = int.Parse(drowData[SO_CommitInventoryDetailTable.PRODUCTID_FLD].ToString());
                    int     intSOMasterID = int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD].ToString());
                    int     intSODetailID = int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYDETAILID_FLD].ToString());
                    Decimal decQuantity   = Decimal.Parse(drowData[SO_CommitInventoryDetailTable.COMMITQUANTITY_FLD].ToString());
                    int     intMasLocID   = 0;
                    if (drowData[SO_CommitInventoryDetailTable.MASTERLOCATIONID_FLD].ToString() != string.Empty)
                    {
                        intMasLocID = int.Parse(drowData[SO_CommitInventoryDetailTable.MASTERLOCATIONID_FLD].ToString());
                    }
                    int intLocationID = 0;
                    if (drowData[SO_CommitInventoryDetailTable.LOCATIONID_FLD].ToString() != string.Empty)
                    {
                        intLocationID = int.Parse(drowData[SO_CommitInventoryDetailTable.LOCATIONID_FLD].ToString());
                    }
                    int intBinID = 0;
                    if (drowData[SO_CommitInventoryDetailTable.BINID_FLD].ToString() != string.Empty)
                    {
                        intBinID = int.Parse(drowData[SO_CommitInventoryDetailTable.BINID_FLD].ToString());
                    }
                    MST_TransactionHistoryVO voTransaction = new MST_TransactionHistoryVO();
                    voTransaction.CCNID            = pintCCNID;
                    voTransaction.MasterLocationID = intMasLocID;
                    voTransaction.ProductID        = intProductID;
                    voTransaction.LocationID       = intLocationID;
                    voTransaction.BinID            = intBinID;
                    voTransaction.RefMasterID      = intSOMasterID;
                    voTransaction.RefDetailID      = intSODetailID;
                    voTransaction.PostDate         = boUtils.GetDBDate();
                    voTransaction.TransDate        = boUtils.GetDBDate();
                    voTransaction.Quantity         = decQuantity * decRate;
                    voTransaction.TranTypeID       = new MST_TranTypeDS().GetTranTypeID(TransactionType.CANCEL_COMMITMENT);
                    voTransaction.StockUMID        = (int)drowData[SO_CommitInventoryDetailTable.STOCKUMID_FLD];

                    new InventoryUtilsBO().UpdateSubtractCommitQuantity(pintCCNID, intMasLocID, intLocationID, intBinID, intProductID, decQuantity * decRate, string.Empty, string.Empty);
                    dsCommitDetail.Delete(int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYDETAILID_FLD].ToString()));
                    new InventoryUtilsBO().SaveTransactionHistory(TransactionType.CANCEL_COMMITMENT, (int)PurposeEnum.CancelCommitment, voTransaction);
                }
            }
            AutoDeleteCommitInventoryMaster();
        }
예제 #2
0
 public DataSet ListCancelable(int pintSaleOrderMasterID)
 {
     try
     {
         SO_CommitInventoryDetailDS dsCommitInventory = new SO_CommitInventoryDetailDS();
         return(dsCommitInventory.ListCancelable(pintSaleOrderMasterID));
     }
     catch (PCSDBException ex)
     {
         throw ex;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #3
0
        public void UpdateRelease(ArrayList parrMaster, DataSet pdstCommitDetail, DataSet pdstMasLocCache,
                                  DataSet pdstLocCache, DataSet pdstBinCache, DataSet pdstTransaction)
        {
            const string METHOD_NAME = THIS + ".UpdateRelease()";

            SO_CommitInventoryMasterDS dsMaster = new SO_CommitInventoryMasterDS();
            DataSet dstCopyOfDetail             = pdstCommitDetail.Clone();
            DataSet dstCopyOfTransaction        = pdstTransaction.Clone();
            UtilsBO boUtils = new UtilsBO();

            foreach (SO_CommitInventoryMasterVO voMaster in parrMaster)
            {
                int intOldID = voMaster.CommitInventoryMasterID;
                voMaster.CommitmentNo = boUtils.GetNoByMask(SO_CommitInventoryMasterTable.TABLE_NAME,
                                                            SO_CommitInventoryMasterTable.COMMITMENTNO_FLD, voMaster.CommitDate, Constants.YYYYMMDD0000);
                // add new master object and get new id
                voMaster.CommitInventoryMasterID = dsMaster.AddAndReturnID(voMaster);

                #region find all detail object to assign new master id

                DataRow[] drowDetails = pdstCommitDetail.Tables[0].Select(SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD + "=" + intOldID);
                foreach (DataRow drowDetail in drowDetails)
                {
                    if (drowDetail.RowState != DataRowState.Deleted)
                    {
                        DataRow drowCommitDetail = dstCopyOfDetail.Tables[0].NewRow();
                        foreach (DataColumn dcol in dstCopyOfDetail.Tables[0].Columns)
                        {
                            drowCommitDetail[dcol.ColumnName] = drowDetail[dcol.ColumnName];
                        }
                        drowCommitDetail[SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD] = voMaster.CommitInventoryMasterID;
                        dstCopyOfDetail.Tables[0].Rows.Add(drowCommitDetail);
                    }
                }

                #endregion

                #region find all transaction history object to assign new master id

                DataRow[] drowTransaction = pdstTransaction.Tables[0].Select(MST_TransactionHistoryTable.REFMASTERID_FLD + "=" + intOldID);
                foreach (DataRow drowDetail in drowTransaction)
                {
                    if (drowDetail.RowState != DataRowState.Deleted)
                    {
                        DataRow drowNewTransaction = dstCopyOfTransaction.Tables[0].NewRow();
                        foreach (DataColumn dcol in dstCopyOfTransaction.Tables[0].Columns)
                        {
                            drowNewTransaction[dcol.ColumnName] = drowDetail[dcol.ColumnName];
                        }
                        drowNewTransaction[MST_TransactionHistoryTable.REFMASTERID_FLD] = voMaster.CommitInventoryMasterID;
                        dstCopyOfTransaction.Tables[0].Rows.Add(drowNewTransaction);
                    }
                }

                #endregion
            }

            // update detail dataset
            SO_CommitInventoryDetailDS dsCommitDetail = new SO_CommitInventoryDetailDS();
            dsCommitDetail.UpdateDataSet(dstCopyOfDetail);
            // update transaction history
            MST_TransactionHistoryDS dsTransaction = new MST_TransactionHistoryDS();
            dsTransaction.UpdateDataSet(dstCopyOfTransaction);
            // update bin cache
            IV_BinCacheDS dsBinCache = new IV_BinCacheDS();
            dsBinCache.UpdateDataSet(pdstBinCache);
            // update location cache
            IV_LocationCacheDS dsLocCache = new IV_LocationCacheDS();
            dsLocCache.UpdateDataSet(pdstLocCache);
            // update master location cache
            IV_MasLocCacheDS dsMasLocCache = new IV_MasLocCacheDS();
            dsMasLocCache.UpdateDataSet(pdstMasLocCache);
        }
예제 #4
0
        public DataSet List(int MasterID)
        {
            SO_CommitInventoryDetailDS dsCommit = new SO_CommitInventoryDetailDS();

            return(dsCommit.List(MasterID));
        }