コード例 #1
0
        public int AddNewReturnToVendor(PO_ReturnToVendorMasterVO pobjReturnToVendorMasterVO, DataSet pdstDetail)
        {
            try
            {
                //check onhand quantity
                CheckOnHandQty(pdstDetail, pobjReturnToVendorMasterVO);

                //store the master first
                PO_ReturnToVendorMasterDS objPO_ReturnToVendorMasterDS = new PO_ReturnToVendorMasterDS();
                PO_ReturnToVendorDetailDS objPO_ReturnToVendorDetailDS = new PO_ReturnToVendorDetailDS();
                //first we need to add to the master and return the latest ID
                int intReturnToVendorMasterID = objPO_ReturnToVendorMasterDS.AddNewReturnToVendor(pobjReturnToVendorMasterVO);

                //assign this ID into the detail
                //update the dataset all of this id
                for (int i = 0; i < pdstDetail.Tables[0].Rows.Count; i++)
                {
                    if (pdstDetail.Tables[0].Rows[i].RowState != DataRowState.Deleted)
                    {
                        pdstDetail.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.RETURNTOVENDORMASTERID_FLD] = intReturnToVendorMasterID;
                    }
                }
                //Add this database into database
                if (pobjReturnToVendorMasterVO.PurchaseOrderMasterID != 0)
                {
                    objPO_ReturnToVendorDetailDS.UpdateReturnToVendorDataSet(pdstDetail, intReturnToVendorMasterID);
                }
                else if (pobjReturnToVendorMasterVO.InvoiceMasterID != 0)
                {
                    objPO_ReturnToVendorDetailDS.UpdateDataSetForInvoice(pdstDetail);
                }

                // Add value to pobjReturnToVendorMasterVO
                pobjReturnToVendorMasterVO.ReturnToVendorMasterID = intReturnToVendorMasterID;

                //Update inventory data
                UpdateInventoryInfor(pdstDetail, true, pobjReturnToVendorMasterVO);
                // HACK: Trada 27-12-2005
                //Update MST_TransactionHistory
                new UtilsBO();
                InventoryUtilsBO          boInventoryUtils       = new InventoryUtilsBO();
                PO_ReturnToVendorDetailDS dsReturnToVendorDetail = new PO_ReturnToVendorDetailDS();
                pdstDetail = dsReturnToVendorDetail.ListReturnToVendorDetail(intReturnToVendorMasterID);
                foreach (DataRow drow in pdstDetail.Tables[0].Rows)
                {
                    MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO();

                    voTransactionHistory.CCNID            = pobjReturnToVendorMasterVO.CCNID;
                    voTransactionHistory.MasterLocationID = pobjReturnToVendorMasterVO.MasterLocationID;
                    voTransactionHistory.PartyID          = pobjReturnToVendorMasterVO.PartyID;
                    voTransactionHistory.PostDate         = pobjReturnToVendorMasterVO.PostDate;
                    voTransactionHistory.PartyLocationID  = pobjReturnToVendorMasterVO.PurchaseLocID;

                    //HACK: Modify by Tuan TQ 03 Apr, 2006. Fix error no. 3279
                    //Rem by Tuan TQ: 03 Apr, 2006
                    //voTransactionHistory.RefMasterID = intReturnToVendorMasterID;

                    //Rem by Tuan TQ: 15 June, 2006
                    //voTransactionHistory.RefMasterID = pobjReturnToVendorMasterVO.PurchaseOrderMasterID;

                    //HACK: Modified by Tuan TQ: 15 June, 2006. RefMasterID must be RTV MasterID (for Stock Card report)
                    voTransactionHistory.RefMasterID = intReturnToVendorMasterID;
                    //end hack

                    //End Hack

                    voTransactionHistory.LocationID = int.Parse(drow[PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString());
                    if (drow[PO_ReturnToVendorDetailTable.BINID_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.BinID = int.Parse(drow[PO_ReturnToVendorDetailTable.BINID_FLD].ToString());
                    }
                    if (drow[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.RefDetailID = int.Parse(drow[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD].ToString());
                    }
                    if (drow[PO_ReturnToVendorDetailTable.LOT_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.Lot = drow[PO_ReturnToVendorDetailTable.LOT_FLD].ToString();
                    }
                    if (drow[PO_ReturnToVendorDetailTable.SERIAL_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.Serial = drow[PO_ReturnToVendorDetailTable.SERIAL_FLD].ToString();
                    }

                    if (drow[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.ProductID = int.Parse(drow[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString());
                    }

                    if (drow[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString() != string.Empty)
                    {
                        voTransactionHistory.StockUMID = int.Parse(drow[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString());
                    }

                    voTransactionHistory.Quantity = Decimal.Parse(drow[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString());

                    voTransactionHistory.TransDate = new UtilsBO().GetDBDate();

                    boInventoryUtils.SaveTransactionHistory(Constants.TRANTYPE_PORETURNTOVENDOR, (int)PurposeEnum.ReturnToVendor, voTransactionHistory);
                }
                // END: Trada 27-12-2005
                return(intReturnToVendorMasterID);
            }
            catch (PCSBOException ex)
            {
                throw ex;
            }
            catch (PCSDBException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }