Пример #1
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);
        }
Пример #2
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);
        }