/// <summary> /// Update PO and Delivery Schedule in case : CPO to Exist PO /// </summary> /// <param name="pdstCPODetail"></param> /// <param name="pobjMasterVO"></param> /// <param name="pdstDetail"></param> /// <author>TuanDM</author> public void UpdatePOAndDelSchedule(System.Data.DataSet pdstCPODetail, object pobjMasterVO, System.Data.DataSet pdstDetail) { //Update PO Master PO_PurchaseOrderMasterDS dsMaster = new PO_PurchaseOrderMasterDS(); dsMaster.Update(pobjMasterVO); //Update PO Detail ArrayList arlIndexs = new ArrayList(); ArrayList arlDueDate = new ArrayList(); int intinD = -1; if (pdstDetail != null) { foreach (DataRow objRow in pdstDetail.Tables[0].Rows) { intinD++; if (objRow.RowState == DataRowState.Deleted) { continue; } objRow[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = ((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID; if (objRow[PO_DeliveryScheduleTable.SCHEDULEDATE_FLD].ToString() != string.Empty) { arlDueDate.Add(objRow[PO_DeliveryScheduleTable.SCHEDULEDATE_FLD]); arlIndexs.Add(intinD); } } } PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS(); dsDetail.UpdateDataSet(pdstDetail); //Update DeliverySchedule pdstDetail = dsDetail.List(((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID); //Create DeliverySchedule -- and add DeliverySchedule for (int i = 0; i < arlIndexs.Count; i++) { PO_DeliveryScheduleVO voSchedule = new PO_DeliveryScheduleVO(); voSchedule.DeliveryLine = 1; voSchedule.PurchaseOrderDetailID = int.Parse(pdstDetail.Tables[0].Rows[int.Parse(arlIndexs[i].ToString())][PO_DeliveryScheduleTable.PURCHASEORDERDETAILID_FLD].ToString()); voSchedule.ScheduleDate = DateTime.Parse(arlDueDate[i].ToString()); voSchedule.DeliveryQuantity = decimal.Parse(pdstDetail.Tables[0].Rows[int.Parse(arlIndexs[i].ToString())][PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD].ToString()); new PO_DeliveryScheduleDS().Add(voSchedule); } //Update CPODetail new MTR_CPODS().SetPOMasterID(null, ((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID); }
/// <summary> /// Add new for case : Convert CPO to new PO /// </summary> /// <param name="pdstCPODetail"></param> /// <param name="pobjMasterVO"></param> /// <param name="pdstDetail"></param> ///<author>TuanDM</author> public int AddPOAndDelSchedule(System.Data.DataSet pdstCPODetail, object pobjMasterVO, System.Data.DataSet pdstDetail) { //Add Master and Get returning ID PO_PurchaseOrderMasterDS dsPOMaster = new PO_PurchaseOrderMasterDS(); int intMasterID = dsPOMaster.AddAndReturnID(pobjMasterVO); //Add detail ArrayList arlDueDate = new ArrayList(); foreach (DataRow drowDetail in pdstDetail.Tables[0].Rows) { drowDetail[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = intMasterID; arlDueDate.Add(drowDetail[PO_DeliveryScheduleTable.SCHEDULEDATE_FLD].ToString()); } PO_PurchaseOrderDetailDS dsPODetail = new PO_PurchaseOrderDetailDS(); dsPODetail.UpdateDataSet(pdstDetail); //Get PODetail DataSet which includes PURCHASEORDERDETAILID_FLD pdstDetail = dsPODetail.List(intMasterID); //Create DeliverySchedule -- and add DeliverySchedule PO_DeliveryScheduleVO voSchedule; for (int i = 0; i < pdstDetail.Tables[0].Rows.Count; i++) { voSchedule = new PO_DeliveryScheduleVO(); voSchedule.DeliveryLine = 1; voSchedule.PurchaseOrderDetailID = int.Parse(pdstDetail.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD].ToString()); voSchedule.ScheduleDate = DateTime.Parse(arlDueDate[i].ToString()); voSchedule.DeliveryQuantity = decimal.Parse(pdstDetail.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD].ToString()); new PO_DeliveryScheduleDS().Add(voSchedule); } //Update CPODetail new MTR_CPODS().SetPOMasterID(null, intMasterID); //return ID return(intMasterID); }