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; } }