Пример #1
0
        public void ImportUpdatePurchaseOrder(int pintPOMasterID, DataSet pdstDetail, ref int pintErrorLine)
        {
            const string TEMP_QTY_COL_NAME     = "TempQty";
            const string METHOD_NAME           = THIS + ".ImportUpdateSaleOrder()";
            const string SUMCOMMITQUANTITY_FLD = "SUMCommitQuantity";

            if (pdstDetail.Tables.Count > 0)
            {
                foreach (DataRow drowDetail in pdstDetail.Tables[0].Rows)
                {
                    if (drowDetail.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }
                    if (int.Parse(drowDetail[PO_PurchaseOrderDetailTable.LINE_FLD].ToString()) == -1)
                    {
                        drowDetail.Delete();
                    }
                    else
                    {
                        drowDetail[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = pintPOMasterID;
                    }
                }
                PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();

                //update sale order detail dataset
                dsDetail.UpdateDataSetForImport(pdstDetail, pintPOMasterID);
            }
            pintErrorLine = -1;
        }
Пример #2
0
        //**************************************************************************
        ///    <Description>
        ///       Update Delivery Schedule - DataSet
        ///    </Description>
        ///    <Inputs>
        ///
        ///    </Inputs>
        ///    <Outputs>
        ///       DataSet
        ///    </Outputs>
        ///    <Returns>
        ///       DataSet
        ///    </Returns>
        ///    <Authors>
        ///       THIENHD
        ///    </Authors>
        ///    <History>
        ///       March, 9 2005
        ///    </History>
        ///    <Notes>
        ///    </Notes>
        //**************************************************************************

        public bool GetPurchaseOrderApprovalStatus(int pintPurchaseOrderDetailID)
        {
            PO_PurchaseOrderDetailDS objPO_PurchaseOrderDetailDS = new PO_PurchaseOrderDetailDS();

            //return false;
            return(objPO_PurchaseOrderDetailDS.GetPurchaseOrderApprovalStatus(pintPurchaseOrderDetailID));
        }
Пример #3
0
        /// <summary>
        /// Get PurchaseOrderDetail to Close/Open
        /// </summary>
        /// <param name="pintCCNID"></param>
        /// <param name="pintMasterLocationID"></param>
        /// <param name="pintPurchaseOrderMasterID"></param>
        /// <param name="pblnClose"></param>
        /// <param name="pdtmFromScheduleDate"></param>
        /// <param name="pdtmToScheduleDate"></param>
        /// <returns></returns>
        /// <author>Trada</author>
        /// <date>Friday, Nov 25 2005</date>

        public DataSet GetPurchaseOrderDetail(int pintCCNID, int pintMasterLocationID, int pintPurchaseOrderMasterID, bool pblnClose, DateTime pdtmFromScheduleDate, DateTime pdtmToScheduleDate)
        {
            DataSet dstPurchaseOrderDetail = new DataSet();
            PO_PurchaseOrderDetailDS dsPurchaseOrderDetail = new PO_PurchaseOrderDetailDS();

            return(dstPurchaseOrderDetail = dsPurchaseOrderDetail.GetPurchaseOrderDetail(pintCCNID, pintMasterLocationID, pintPurchaseOrderMasterID, pblnClose, pdtmFromScheduleDate, pdtmToScheduleDate));
        }
Пример #4
0
        public bool CheckLevelApproval(int pintApproverID, int pintMasterID, int pintCCNID)
        {
            PO_PurchaseOrderDetailDS dsPurchaseOrderDetail = new PO_PurchaseOrderDetailDS();
            DataSet dstApprovalLevel = new DataSet();

            dstApprovalLevel = dsPurchaseOrderDetail.GetApprovalLevel(pintApproverID);
            PO_PurchaseOrderMasterDS dsPurchaseOrderMaster = new PO_PurchaseOrderMasterDS();

            dstApprovalLevel.Tables.Add(dsPurchaseOrderMaster.ListPODetailByPOMasterID(pintMasterID, pintCCNID, false).Tables[0].Copy());

            for (int i = 0; i < dstApprovalLevel.Tables[0].Rows.Count; i++)
            {
                decimal amount = 0, total = 0;
                if (dstApprovalLevel.Tables[0].Rows[i][MST_ApprovalLevelTable.AMOUNT_FLD].ToString().Trim() != String.Empty)
                {
                    amount = decimal.Parse(dstApprovalLevel.Tables[0].Rows[i][MST_ApprovalLevelTable.AMOUNT_FLD].ToString());
                }
                if (dstApprovalLevel.Tables[1].Rows[i][PO_PurchaseOrderDetailTable.TOTALAMOUNT_FLD].ToString().Trim() != String.Empty)
                {
                    total = decimal.Parse(dstApprovalLevel.Tables[1].Rows[i][PO_PurchaseOrderDetailTable.TOTALAMOUNT_FLD].ToString());
                }
                if (amount < total)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            return(true);
        }
Пример #5
0
        /// <summary>
        /// Add new for case : Convert CPO to new PO
        /// </summary>
        /// <param name="pobjMasterVO"></param>
        /// <param name="pdstDetail"></param>
        /// <param name="pdstDelivery"></param>
        ///<author>TuanDM</author>

        public void UpdatePOAndDelScheduleImmediate(object pobjMasterVO, System.Data.DataSet pdstDetail, DataSet pdstDelivery, ArrayList parlCPOIDs)
        {
            //Add Master and Get returning ID
            PO_PurchaseOrderMasterDS dsPOMaster = new PO_PurchaseOrderMasterDS();

            dsPOMaster.Update(pobjMasterVO);
            var voMaster = (PO_PurchaseOrderMasterVO)pobjMasterVO;

            //Update detail
            DataSet dstPODetail = pdstDetail.Copy();
            PO_PurchaseOrderDetailDS dsPODetail = new PO_PurchaseOrderDetailDS();

            foreach (DataRow drowDetail in pdstDetail.Tables[0].Rows)
            {
                if (drowDetail.RowState == DataRowState.Added)
                {
                    drowDetail[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = ((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID;
                }
            }
            dsPODetail.UpdateDataSet(pdstDetail);

            //Get PODetail DataSet which includes PURCHASEORDERDETAILID_FLD
            pdstDetail = dsPODetail.ListToGetID(((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID);

            //Create DeliverySchedule -- and add DeliverySchedule
            int intPOLineID = 0;
            PO_DeliveryScheduleDS dsDelivery = new PO_DeliveryScheduleDS();

            for (int i = 0; i < dstPODetail.Tables[0].Rows.Count; i++)
            {
                DataRow[] drowSameDelivery = pdstDelivery.Tables[0].Select(ITM_ProductTable.PRODUCTID_FLD + "='" + dstPODetail.Tables[0].Rows[i][ITM_ProductTable.PRODUCTID_FLD].ToString() + "'");

                intPOLineID = (int)pdstDetail.Tables[0].Select(PO_PurchaseOrderDetailTable.LINE_FLD + "='" + dstPODetail.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.LINE_FLD].ToString() + "'")[0][PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD];
                DataSet dstNewDelPO  = dsDelivery.GetDeliverySchedule(intPOLineID);
                int     intbaseCount = dstNewDelPO.Tables[0].Rows.Count;
                for (int j = 0; j < drowSameDelivery.Length; j++)
                {
                    int k = GetIndexForDeliveryLine(dstNewDelPO, (DateTime)drowSameDelivery[j][PO_DeliveryScheduleTable.SCHEDULEDATE_FLD]);
                    if (k > -1)
                    {
                        dstNewDelPO.Tables[0].Rows[k][PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD] = (decimal)dstNewDelPO.Tables[0].Rows[k][PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD] + (decimal)drowSameDelivery[j][PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD];
                    }
                    else
                    {
                        drowSameDelivery[j][PO_DeliveryScheduleTable.PURCHASEORDERDETAILID_FLD] = intPOLineID;
                        drowSameDelivery[j][PO_DeliveryScheduleTable.DELIVERYLINE_FLD]          = j + 1 + intbaseCount;
                        dstNewDelPO.Tables[0].ImportRow(drowSameDelivery[j]);
                    }
                }
                dsDelivery.UpdateDataSet(dstNewDelPO);
            }

            //Update CPODetail
            MTR_CPODS dsCPO = new MTR_CPODS();

            dsCPO.SetPOMasterID(parlCPOIDs, ((PO_PurchaseOrderMasterVO)pobjMasterVO).PurchaseOrderMasterID);
        }
Пример #6
0
        public void DeletePurchaseOrder(int pintMasterID)
        {
            PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();
            DataSet dstDetail = dsDetail.List(pintMasterID);

            foreach (DataRow drow in dstDetail.Tables[0].Rows)
            {
                dsDetail.Delete(int.Parse(drow[PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD].ToString()));
            }
            PO_PurchaseOrderMasterDS dsMaster = new PO_PurchaseOrderMasterDS();

            dsMaster.Delete(pintMasterID);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <summary>
        /// CloseOrOpenPOLines
        /// </summary>
        /// <param name="pblnPOClose"></param>
        /// <param name="parrSelectedLines"></param>
        /// <author>Trada</author>
        /// <date>Monday, Nov 29 2005</date>

        public void CloseOrOpenPOLines(bool pblnPOClose, ArrayList parrSelectedLines)
        {
            const string COLON        = ",";
            string       strListOfIds = string.Empty;

            for (int i = 0; i < parrSelectedLines.Count; i++)
            {
                strListOfIds += parrSelectedLines[i] + COLON;
            }
            // remove the last "," in string
            strListOfIds = strListOfIds.Remove(strListOfIds.Length - 1, 1);
            PO_PurchaseOrderDetailDS dsPurchaseOrderDetail = new PO_PurchaseOrderDetailDS();

            dsPurchaseOrderDetail.CloseOrOpenPOLines(pblnPOClose, strListOfIds);
        }
Пример #9
0
        //**************************************************************************
        ///    <Description>
        ///       This method uses to get PODetailVO object from ID
        ///    </Description>
        ///    <Inputs>
        ///        int
        ///    </Inputs>
        ///    <Outputs>
        ///       PO_PurchaseOrderDetailVO
        ///    </Outputs>
        ///    <Returns>
        ///       PO_PurchaseOrderDetailVO
        ///    </Returns>
        ///    <Authors>
        ///       DungLa
        ///    </Authors>
        ///    <History>
        ///       07-Mar-2005
        ///    </History>
        ///    <Notes>
        ///    </Notes>
        //**************************************************************************

        public object GetPurchaseOrderDetailVO(int pintPODetailID)
        {
            try
            {
                PO_PurchaseOrderDetailDS dsPODetail = new PO_PurchaseOrderDetailDS();
                return(dsPODetail.GetObjectVO(pintPODetailID));
            }
            catch (PCSException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #10
0
        //**************************************************************************
        ///    <Description>
        ///       This method uses to get order quantity of a detail
        ///    </Description>
        ///    <Inputs>
        ///        int
        ///    </Inputs>
        ///    <Outputs>
        ///       decimal
        ///    </Outputs>
        ///    <Returns>
        ///
        ///    </Returns>
        ///    <Authors>
        ///       DungLa
        ///    </Authors>
        ///    <History>
        ///       05-Apr-2005
        ///    </History>
        ///    <Notes>
        ///    </Notes>
        //**************************************************************************

        public decimal GetOrderQuantity(int pintPODetailID)
        {
            try
            {
                PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();
                return(dsDetail.GetOrderQuantity(pintPODetailID));
            }
            catch (PCSException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #11
0
        /// <summary>
        /// Delete purchase order of estimate month
        /// </summary>
        /// <param name="pdtmFromDate">From Date</param>
        /// <param name="pdtmToDate">To Date</param>
        /// <param name="pintPOType">Purchase Type</param>
        /// <param name="pstrVendorID">Vendor List</param>
        /// <param name="pstrItemID">Item list</param>
        public void DeleteEstimatePO(DateTime pdtmFromDate, DateTime pdtmToDate, int pintPOType, string pstrVendorID, string pstrItemID)
        {
            PO_PurchaseOrderMasterDS dsMaster = new PO_PurchaseOrderMasterDS();
            // get list of purchase order master ID to be delete
            DataTable dtbMaster   = dsMaster.ListMasterToDelete(pdtmFromDate, pdtmToDate, pintPOType, pstrItemID, pstrItemID).Tables[0];
            string    strMasterId = dtbMaster.Rows.Cast <DataRow>().Aggregate("0", (current, drowMaster) => current + ("," + drowMaster[PO_PurchaseOrderMasterTable.PURCHASEORDERMASTERID_FLD]));
            // delete delivery schedule first
            PO_DeliveryScheduleDS dsSchedule = new PO_DeliveryScheduleDS();

            dsSchedule.DeleteByPOMaster(strMasterId);
            // delete purchase order detail
            PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();

            dsDetail.DeleteByMaster(strMasterId);
            // delete purchase order master
            dsMaster.Delete(strMasterId);
        }
Пример #12
0
        public int AddNewPurchaseOrder(object pvoPOMaster, DataSet pdstPODetail)
        {
            PO_PurchaseOrderMasterDS dsMaster = new PO_PurchaseOrderMasterDS();
            int intPOMasterID = dsMaster.AddAndReturnID(pvoPOMaster);

            foreach (DataRow objRow in pdstPODetail.Tables[0].Rows)
            {
                if (objRow.RowState == DataRowState.Deleted)
                {
                    continue;
                }
                objRow[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = intPOMasterID;
            }
            PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();

            dsDetail.UpdateDataSet(pdstPODetail);
            return(intPOMasterID);
        }
Пример #13
0
        public void UpdateAllAfterApprove(DataTable pdtbDataApprove, DateTime pdtmApprovalDate, int pintApproveID)
        {
            try
            {
                PO_PurchaseOrderDetailDS dsPurchaseOrderDetail = new PO_PurchaseOrderDetailDS();

                //for approval
                if (pintApproveID > 0)
                {
                    foreach (DataRow drow in pdtbDataApprove.Rows)
                    {
                        if (drow[CHECK_APPROVE].ToString().Trim() == TRUE)
                        {
                            drow[PO_PurchaseOrderDetailTable.APPROVERID_FLD]   = pintApproveID;
                            drow[PO_PurchaseOrderDetailTable.APPROVALDATE_FLD] = pdtmApprovalDate;
                        }
                    }
                }
                else
                {
                    foreach (DataRow drow in pdtbDataApprove.Rows)
                    {
                        if (drow[CHECK_APPROVE].ToString().Trim() == TRUE)
                        {
                            drow[PO_PurchaseOrderDetailTable.APPROVERID_FLD]   = DBNull.Value;
                            drow[PO_PurchaseOrderDetailTable.APPROVALDATE_FLD] = pdtmApprovalDate;
                        }
                    }
                }

                //for cancel
                DataSet dstData = new DataSet();
                dstData.Tables.Add(pdtbDataApprove.Copy());
                dsPurchaseOrderDetail.UpdateDataSetForApproving(dstData);
            }
            catch (PCSDBException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #14
0
        public void UpdatePurchaseOrder(object pvoPOMaster, DataSet pdstDetail)
        {
            PO_PurchaseOrderMasterDS dsMaster = new PO_PurchaseOrderMasterDS();

            dsMaster.Update(pvoPOMaster);
            if (pdstDetail != null)
            {
                foreach (DataRow objRow in pdstDetail.Tables[0].Rows)
                {
                    if (objRow.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }
                    objRow[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = ((PO_PurchaseOrderMasterVO)pvoPOMaster).PurchaseOrderMasterID;
                }
            }
            PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();

            dsDetail.UpdateDataSet(pdstDetail);
        }
Пример #15
0
        /// <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);
        }
Пример #16
0
        public DataSet ListDetailByMaster(int pintID)
        {
            PO_PurchaseOrderDetailDS dsDetail = new PO_PurchaseOrderDetailDS();

            return(dsDetail.List(pintID));
        }
Пример #17
0
        public DataTable GetListOfReceivedProductsFromPurchaseOrder(int pintPurchaseOrderMasterID)
        {
            PO_PurchaseOrderDetailDS objPO_PurchaseOrderDetailDS = new PO_PurchaseOrderDetailDS();

            return(objPO_PurchaseOrderDetailDS.GetListOfReceivedProductsFromPurchaseOrder(pintPurchaseOrderMasterID));
        }
Пример #18
0
        /// <summary>
        /// Add new for case : Convert CPO to new PO
        /// </summary>
        /// <param name="pobjMasterVO"></param>
        /// <param name="pdstDetail"></param>
        /// <param name="pdstDelivery"></param>
        ///<author>TuanDM</author>

        public int AddPOAndDelScheduleImmediate(object pobjMasterVO, System.Data.DataSet pdstDetail, DataSet pdstDelivery, ArrayList parlCPOIDs)
        {
            //Add Master and Get returning ID
            PO_PurchaseOrderMasterDS dsPOMaster = new PO_PurchaseOrderMasterDS();
            int intMasterID = dsPOMaster.AddAndReturnID(pobjMasterVO);

            //Add detail
            foreach (DataRow drowDetail in pdstDetail.Tables[0].Rows)
            {
                drowDetail[PO_PurchaseOrderDetailTable.PURCHASEORDERMASTERID_FLD] = intMasterID;
            }
            PO_PurchaseOrderDetailDS dsPODetail = new PO_PurchaseOrderDetailDS();

            dsPODetail.UpdateDataSet(pdstDetail);

            //Get PODetail DataSet which includes PURCHASEORDERDETAILID_FLD
            pdstDetail = dsPODetail.ListToGetID(intMasterID);

            //Create DeliverySchedule -- and add DeliverySchedule
            int intPOLineID = 0;
            int i           = 0;
            PO_DeliveryScheduleDS dsDelivery = new PO_DeliveryScheduleDS();

            while (i++ < pdstDetail.Tables[0].Rows.Count)
            {
                DataSet dstNewDelPO = pdstDelivery.Clone();

                DataRow[] drowSameDelivery = pdstDelivery.Tables[0].Select(ITM_ProductTable.PRODUCTID_FLD + "='" + pdstDetail.Tables[0].Rows[i - 1][ITM_ProductTable.PRODUCTID_FLD].ToString() + "'");

                intPOLineID = (int)pdstDetail.Tables[0].Rows[i - 1][PO_DeliveryScheduleTable.PURCHASEORDERDETAILID_FLD];
                foreach (DataRow t in drowSameDelivery)
                {
                    int k = GetIndexForDeliveryLine(dstNewDelPO, (DateTime)t[PO_DeliveryScheduleTable.SCHEDULEDATE_FLD]);
                    if (k > -1)
                    {
                        dstNewDelPO.Tables[0].Rows[k][PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD] = (decimal)dstNewDelPO.Tables[0].Rows[k][PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD] + (decimal)t[PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD];
                        t[PO_DeliveryScheduleTable.PURCHASEORDERDETAILID_FLD] = intPOLineID;
                    }
                    else
                    {
                        t[PO_DeliveryScheduleTable.PURCHASEORDERDETAILID_FLD] = intPOLineID;
                        t[PO_DeliveryScheduleTable.DELIVERYLINE_FLD]          = dstNewDelPO.Tables[0].Rows.Count + 1;
                        dstNewDelPO.Tables[0].ImportRow(t);
                    }
                }
                dsDelivery.UpdateDataSet(dstNewDelPO);
            }
            //Update CPODetail
            MTR_CPODS dsCPO = new MTR_CPODS();

            if (parlCPOIDs.Count > 0)
            {
                if (Convert.ToInt32(parlCPOIDs[0]) > 0)
                {
                    dsCPO.SetPOMasterID(parlCPOIDs, intMasterID);
                }
                else
                {
                    dsCPO.SetPOMasterIDForDCPDetail(parlCPOIDs, intMasterID);
                }
            }

            return(intMasterID);
        }