Beispiel #1
0
        public async Task submitForm()
        {
            if (string.IsNullOrEmpty(docnumber))
            {
                await _pageService.DisplayAlert("Fail", "Please fill in Doc Number", "OK");

                return;
            }

            if (typeof(CartPage) == sourcepage.GetType())
            {
                var vm = ((CartPage)sourcepage).BindingContext as CartPageViewModel;
                vm.docnumber = docnumber;
                await _pageService.PopModalAsync();

                await vm.postGRN();
            }
            else if (typeof(MainMenu) == sourcepage.GetType())
            {
                PurchaseDelivery obj = new PurchaseDelivery()
                {
                    DocNo = docnumber
                };
                Application.Current.Properties[PropertyHelper.PurchaseOrderProp] = obj;
                await _pageService.PopModalAsync();

                ((MainMenu)sourcepage).gotoPOItem();
            }
        }
        private void CopyFromPO_CustomizePopupWindowParams(object sender, CustomizePopupWindowParamsEventArgs e)
        {
            PurchaseDelivery masterobject = (PurchaseDelivery)View.CurrentObject;

            string ObjType         = masterobject.DocType.BoCode;
            string BusinessPartner = masterobject.CardCode == null ? "" : masterobject.CardCode.CardCode;

            IObjectSpace         newObjectSpace   = Application.CreateObjectSpace(typeof(PurchaseOrderDetail));
            string               listViewId       = Application.FindLookupListViewId(typeof(PurchaseOrderDetail));
            CollectionSourceBase collectionSource = Application.CreateCollectionSource(newObjectSpace, typeof(PurchaseOrderDetail), listViewId);

            if (BusinessPartner == "")
            {
                collectionSource.Criteria["filter01"] = CriteriaOperator.Parse("1=0");
            }
            else
            {
                if (GeneralValues.LiveWithPost)
                {
                    collectionSource.Criteria["Filter01"] = CriteriaOperator.Parse("PostVerNo = VerNo and OpenQty > CopyQty and PurchaseOrder is not null and PurchaseOrder.PostVerNo = PurchaseOrder.VerNo and PurchaseOrder.DocStatus.CurrDocStatus in (?) and LineStatus in (?) and (PurchaseOrder.CardCode=?)", DocStatus.Accepted, LineStatusEnum.Open, BusinessPartner);
                }
                else
                {
                    collectionSource.Criteria["Filter01"] = CriteriaOperator.Parse("OpenQty > CopyQty and PurchaseOrder is not null and PurchaseOrder.DocStatus.CurrDocStatus in (?) and LineStatus in (?) and (PurchaseOrder.CardCode=?)", DocStatus.Accepted, LineStatusEnum.Open, BusinessPartner);
                }
            }
            e.View = Application.CreateListView(listViewId, collectionSource, true);
            //e.View = Application.CreateListView(typeof(PurchaseRequestDetail), true);
        }
        public async Task <IActionResult> Get(int id)
        {
            try
            {
                PurchaseDelivery obj = await _uow.GetObjectByKeyAsync <PurchaseDelivery>(id);

                if (obj == null)
                {
                    return(NotFound());
                }
                //return Ok(obj);

                List <PurchaseDelivery> objlist = new List <PurchaseDelivery>();
                objlist.Add(obj);

                var result = objlist.Select(r => new
                {
                    Header = r,
                    PurchaseDeliveryDetail = r.PurchaseDeliveryDetail.ToArray()
                }).Single();

                return(Ok(result));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
 private void deleteDetails(JObject value, PurchaseDelivery obj)
 {
     try
     {
         #region delete details
         string detalclassname = "PurchaseDeliveryDetail";
         bool   isnew          = false;
         int    intkeyvalue    = -1;
         JArray jarray         = (JArray)value[detalclassname];
         foreach (JObject Jdtl in jarray.Children())
         {
             isnew = false;
             if (Jdtl.ContainsKey("Oid"))
             {
                 if (Jdtl["Oid"] == null)
                 {
                     isnew = true;
                 }
                 else
                 {
                     if (int.TryParse(Jdtl["Oid"].ToString(), out intkeyvalue))
                     {
                         if (intkeyvalue == -1)
                         {
                             isnew = true;
                         }
                     }
                 }
             }
             else
             {
                 isnew = true;
             }
             if (!isnew)
             {
                 if (Jdtl.ContainsKey("IsBeingDelete"))
                 {
                     if (Jdtl["IsBeingDelete"].ToString() == "1" || Jdtl["IsBeingDelete"].ToString().ToUpper() == "TRUE")
                     {
                         PurchaseDeliveryDetail dtl = obj.PurchaseDeliveryDetail.Where(pp => pp.Oid == intkeyvalue).FirstOrDefault();
                         if (dtl != null)
                         {
                             dtl.Delete();
                         }
                         //obj.PurchaseDeliveryDetail.Remove(dtl);
                     }
                 }
             }
         }
         #endregion
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        private void CopyFromPO_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
        {
            PurchaseDelivery masterobject = (PurchaseDelivery)View.CurrentObject;
            IObjectSpace     ios          = View is DetailView ? ObjectSpace : Application.CreateObjectSpace();

            if (copyCon.CopyFromDocument(masterobject, (ListView)e.PopupWindow.View, ios))
            {
                masterobject.IsCopy = true;
                genCon.showMsg("Operation Done", "Item Copied.", InformationType.Success);
                return;
            }
        }
        public void resetButton()
        {
            this.CopyFromPO.Active.SetItemValue("Enabled", false);
            this.CopyToGR.Active.SetItemValue("Enabled", false);

            PurchaseDelivery selectobject = (PurchaseDelivery)View.CurrentObject;
            SystemUsers      user         = ObjectSpace.GetObjectByKey <SystemUsers>(SecuritySystem.CurrentUserId);

            switch (selectobject.DocStatus.CurrDocStatus)
            {
            case DocStatus.Cancelled:
            case DocStatus.Closed:
            case DocStatus.Posted:
            case DocStatus.Accepted:
            case DocStatus.Submited:
                break;

            default:
                this.CopyFromPO.Active.SetItemValue("Enabled", true);
                break;
            }
            switch (selectobject.DocStatus.CurrDocStatus)
            {
            case DocStatus.Accepted:
            case DocStatus.Posted:
                if (user.Roles.Where(pp => pp.Name == DocTypeCodes.PurchaseReturn).Count() > 0)
                {
                    if (GeneralValues.LiveWithPost)
                    {
                        if (selectobject.VerNo == selectobject.PostVerNo && selectobject.DocStatus.CurrDocStatus == DocStatus.Posted)
                        {
                            this.CopyToGR.Active.SetItemValue("Enabled", true);
                        }
                    }
                    else
                    {
                        this.CopyToGR.Active.SetItemValue("Enabled", true);
                    }
                }
                break;

            default:
                break;
            }
        }
        public async Task <IActionResult> Put(int id, [FromBody] JObject values)
        {
            try
            {
                ////PurchaseDelivery customer = _uow.GetObjectByKey<PurchaseDelivery>(id);
                ////JToken token;
                ////if (value.TryGetValue("Department", out token))
                ////{
                ////    customer.Department = _uow.GetObjectByKey<Departments>(token["Oid"].Value<int>());
                ////}

                ////if (value.TryGetValue("FullName", out token))
                ////{
                ////    customer.FullName = value["FullName"].Value<string>();
                ////}

                //PurchaseDelivery customer = _uow.GetObjectByKey<PurchaseDelivery>(id);

                //JsonPopulateObjectHelper.PopulateObject(value.ToString(), _uow, customer);
                //_uow.CommitChanges();
                PurchaseDelivery obj = null;

                obj = await _uow.GetObjectByKeyAsync <PurchaseDelivery>(id);

                if (obj == null)
                {
                    return(NotFound());
                }
                JsonPopulateObjectHelper.PopulateObject(values.ToString(), _uow, obj);

                addNewDetailsOnly(values, obj, false);
                deleteDetails(values, obj);

                await _uow.CommitChangesAsync();

                return(Ok(obj));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public async Task <IActionResult> Post([FromBody] JObject values)
        {
            try
            {
                PurchaseDelivery obj = null;
                //PurchaseDelivery obj = JsonPopulateObjectHelper.PopulateObject<PurchaseDelivery>(values.ToString(), _uow);
                //PurchaseDelivery customer = new PurchaseDelivery(_uow);
                //customer.FullName = values["FullName"].Value<string>();
                //_uow.CommitChanges();
                obj = JsonPopulateObjectHelper.PopulateObject <PurchaseDelivery>(values.ToString(), _uow);

                addNewDetailsOnly(values, obj, true);

                await _uow.CommitChangesAsync();

                //obj = JsonConvert.DeserializeObject<PurchaseDelivery>(values.ToString());
                return(Ok(obj));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        private void CopyToDO_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            PurchaseOrder sObject = (PurchaseOrder)View.CurrentObject;

            if (GeneralValues.LiveWithPost)
            {
                if (sObject.VerNo > sObject.PostVerNo)
                {
                    genCon.showMsg("Operation fail", "Document has not yet sync. Please wait.", InformationType.Error);
                    return;
                }
                foreach (PurchaseOrderDetail dtl in sObject.PurchaseOrderDetail)
                {
                    if (dtl.VerNo > dtl.PostVerNo)
                    {
                        genCon.showMsg("Operation fail", "Document has not yet sync. Please wait.", InformationType.Error);
                        return;
                    }
                }
            }
            IObjectSpace     ios     = Application.CreateObjectSpace();
            PurchaseDelivery tObject = ios.CreateObject <PurchaseDelivery>();

            if (copyCon.CopyToDocument(sObject, tObject, ios, (DetailView)View))
            {
                if (tObject.CardCode != null)
                {
                    tObject.IsCopy = true;
                }

                genCon.showMsg("Operation Done", "New Purchase Delivery copied. Please save it.", InformationType.Success);
                genCon.openNewView(ios, tObject, ViewEditMode.Edit);
                return;
            }

            genCon.showMsg("Operation Done", "No Open Item for copied.", InformationType.Info);
        }
        public async Task <IActionResult> Delete(int id)
        {
            try
            {
                //PurchaseDelivery customer = _uow.GetObjectByKey<PurchaseDelivery>(id);
                //_uow.Delete(customer);
                //_uow.CommitChanges();

                PurchaseDelivery obj = await _uow.GetObjectByKeyAsync <PurchaseDelivery>(id);

                if (obj == null)
                {
                    return(NotFound());
                }
                _uow.Delete(obj);
                await _uow.CommitChangesAsync();

                return(Ok(obj));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Beispiel #11
0
        public async Task <IActionResult> GenGRN(string docno, [FromBody] JObject values)
        {
            try
            {
                PurchaseOrder sobj = _uow.Query <PurchaseOrder>().Where(pp => pp.DocNo == docno).FirstOrDefault();
                if (sobj == null)
                {
                    return(NotFound());
                }
                PurchaseDelivery obj = JsonPopulateObjectHelper.PopulateObject <PurchaseDelivery>(values.ToString(), _uow);

                addNewDetailsOnly(values, obj, true);

                await _uow.CommitChangesAsync();

                //obj = JsonConvert.DeserializeObject<PurchaseRequest>(values.ToString());

                return(Ok(obj));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
//[HttpGet]
//public List<DocTypeSeries> Get()
//{
//    List<DocTypeSeries> result = null;
//    XPQuery<DocTypeSeries> query = (XPQuery<DocTypeSeries>)_uow.Query<DocTypeSeries>();
//    result = query.ToList<DocTypeSeries>();

//    return result;
//}

        private void addNewDetailsOnly(JObject value, PurchaseDelivery obj, bool IsNewHeader)
        {
            try
            {
                #region add details
                string detalclassname = "PurchaseDeliveryDetail";
                bool   isnew          = false;
                int    intkeyvalue    = -1;
                JArray jarray         = (JArray)value[detalclassname];
                foreach (JObject Jdtl in jarray.Children())
                {
                    isnew = false;
                    if (IsNewHeader)
                    {
                        isnew = true;
                    }
                    else
                    {
                        if (Jdtl.ContainsKey("Oid"))
                        {
                            if (Jdtl["Oid"] == null)
                            {
                                isnew = true;
                            }
                            else
                            {
                                if (int.TryParse(Jdtl["Oid"].ToString(), out intkeyvalue))
                                {
                                    if (intkeyvalue == -1)
                                    {
                                        isnew = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            isnew = true;
                        }
                    }
                    if (isnew)
                    {
                        if (Jdtl.ContainsKey("IsBeingDelete"))
                        {
                            if (Jdtl["IsBeingDelete"].ToString() == "1" || Jdtl["IsBeingDelete"].ToString().ToUpper() == "TRUE")
                            {
                                isnew = false;
                            }
                        }
                        if (isnew)
                        {
                            PurchaseDeliveryDetail dtl = JsonPopulateObjectHelper.PopulateObject <PurchaseDeliveryDetail>(Jdtl.ToString(), _uow);
                            obj.PurchaseDeliveryDetail.Add(dtl);
                        }
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Beispiel #13
0
        public void GetDetailClassVisOrder(ClassDocument tObject, ref int minvalue, ref int maxvisorder)
        {
            int comparevalue    = 0;
            int comparevisorder = 0;

            if (tObject.GetType() == typeof(PurchaseRequest))
            {
                PurchaseRequest masterobject = (PurchaseRequest)tObject;
                if (masterobject.PurchaseRequestDetail.Count > 0)
                {
                    comparevalue    = masterobject.PurchaseRequestDetail.Min(pp => pp.Oid);
                    comparevisorder = masterobject.PurchaseRequestDetail.Max(pp => pp.VisOrder);
                }
                if (comparevalue <= minvalue)
                {
                    minvalue = comparevalue - 1;
                }
                if (comparevisorder >= maxvisorder)
                {
                    maxvisorder = comparevisorder + 1;
                }
            }
            else if (tObject.GetType() == typeof(PurchaseOrder))
            {
                PurchaseOrder masterobject = (PurchaseOrder)tObject;
                if (masterobject.PurchaseOrderDetail.Count > 0)
                {
                    comparevalue    = masterobject.PurchaseOrderDetail.Min(pp => pp.Oid);
                    comparevisorder = masterobject.PurchaseOrderDetail.Max(pp => pp.VisOrder);
                }
                if (comparevalue <= minvalue)
                {
                    minvalue = comparevalue - 1;
                }
                if (comparevisorder >= maxvisorder)
                {
                    maxvisorder = comparevisorder + 1;
                }
            }
            else if (tObject.GetType() == typeof(PurchaseDelivery))
            {
                PurchaseDelivery masterobject = (PurchaseDelivery)tObject;
                if (masterobject.PurchaseDeliveryDetail.Count > 0)
                {
                    comparevalue    = masterobject.PurchaseDeliveryDetail.Min(pp => pp.Oid);
                    comparevisorder = masterobject.PurchaseDeliveryDetail.Max(pp => pp.VisOrder);
                }
                if (comparevalue <= minvalue)
                {
                    minvalue = comparevalue - 1;
                }
                if (comparevisorder >= maxvisorder)
                {
                    maxvisorder = comparevisorder + 1;
                }
            }
            else if (tObject.GetType() == typeof(PurchaseReturn))
            {
                PurchaseReturn masterobject = (PurchaseReturn)tObject;
                if (masterobject.PurchaseReturnDetail.Count > 0)
                {
                    comparevalue    = masterobject.PurchaseReturnDetail.Min(pp => pp.Oid);
                    comparevisorder = masterobject.PurchaseReturnDetail.Max(pp => pp.VisOrder);
                }
                if (comparevalue <= minvalue)
                {
                    minvalue = comparevalue - 1;
                }
                if (comparevisorder >= maxvisorder)
                {
                    maxvisorder = comparevisorder + 1;
                }
            }
            else if (tObject.GetType() == typeof(PurchaseQuotation))
            {
                PurchaseQuotation masterobject = (PurchaseQuotation)tObject;
                if (masterobject.PurchaseQuotationDetail.Count > 0)
                {
                    comparevalue    = masterobject.PurchaseQuotationDetail.Min(pp => pp.Oid);
                    comparevisorder = masterobject.PurchaseQuotationDetail.Max(pp => pp.VisOrder);
                }
                if (comparevalue <= minvalue)
                {
                    minvalue = comparevalue - 1;
                }
                if (comparevisorder >= maxvisorder)
                {
                    maxvisorder = comparevisorder + 1;
                }
            }
        }
Beispiel #14
0
        public IActionResult GenGRN([FromBody] JObject values)
        {
            try
            {
                GenHelper.WriteLog("[Log]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                GenHelper.WriteLog("[Json]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[" + Environment.NewLine + values.ToString() + Environment.NewLine + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");

                //
                //JsonParser.ParseJObjectXPO<PurchaseDelivery>(values, employee, objectSpace);
                string           temp = "";
                JToken           token;
                PurchaseDelivery employee = objectSpace.CreateObject <PurchaseDelivery>();
                token              = values["CardCode"];
                temp               = token["BoKey"].ToString();
                employee.CardCode  = objectSpace.FindObject <vwBusinessPartners>(CriteriaOperator.Parse("BoKey=?", temp));
                employee.NumAtCard = values["NumAtCard"].ToString();

                //JsonPopulateObjectHelper.PopulateObjectWODetail(values.ToString(), employee.Session, employee);

                string detalclassname = "PurchaseDeliveryDetail";
                int    intkeyvalue    = -1;
                JArray jarray         = (JArray)values[detalclassname];
                int    cnt            = 0;
                foreach (JObject Jdtl in jarray.Children())
                {
                    if (Jdtl.ContainsKey("Oid"))
                    {
                        if (int.TryParse(Jdtl["Oid"].ToString(), out intkeyvalue))
                        {
                            PurchaseDeliveryDetail dtl = objectSpace.GetObjectByKey <PurchaseDeliveryDetail>(intkeyvalue);
                            cnt++;
                            dtl.VisOrder = cnt;
                            dtl.VerNo    = 1;
                            employee.PurchaseDeliveryDetail.Add(dtl);
                        }
                        else
                        {
                            GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[Details Key value is invalid][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                            throw new Exception("Details Key value is invalid");
                        }
                    }
                    else
                    {
                        GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[Details Key Column Not found][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                        throw new Exception("Details Key Column Not found");
                    }
                }
                if (employee.DocTypeSeries == null)
                {
                    GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[Document series is not found][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                    throw new Exception("Document series is not found");
                }
                employee.DocStatus.AddDocStatus(DocStatus.Accepted, "WebApi Generated");
                employee.DocStatus.CurrDocStatus = DocStatus.Accepted;
                employee.VerNo = 1;
                employee.AssignDocNumber();
                objectSpace.CommitChanges();
                return(Ok(employee.DocNum));
            }
            catch (Exception ex)
            {
                GenHelper.WriteLog("[Error]", "[" + securityProvider.GetUserName() + "]" + controllername + "-GenGRN:[" + ex.Message + "][" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]");
                throw new Exception(ex.Message);
            }
        }
 public async Task <SaveResult> Save(PurchaseDelivery PurchaseOrder)
 {
     throw new NotImplementedException();
 }
Beispiel #16
0
        private void Controller_ObjectCreated(object sender, ObjectCreatedEventArgs e)
        {
            ListView lv = ((ListView)View);

            if (lv.CollectionSource is PropertyCollectionSource)
            {
                PropertyCollectionSource collectionSource = (PropertyCollectionSource)lv.CollectionSource;
                if (collectionSource.MasterObject != null)
                {
                    int minvalue    = 0;
                    int maxvisorder = 0;

                    if (collectionSource.MasterObjectType == typeof(StockTransferRequest) && e.CreatedObject.GetType() == typeof(StockTransferRequestDetail))
                    {
                        StockTransferRequest       masterobject  = (StockTransferRequest)collectionSource.MasterObject;
                        StockTransferRequestDetail currentobject = (StockTransferRequestDetail)e.CreatedObject;

                        copyCon.GetStockDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (sDtlS != null)
                        {
                            copyCon.copyClassStockTransferDocumentDetail(sDtlS, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseOrder))
                    {
                        PurchaseOrder       masterobject  = (PurchaseOrder)collectionSource.MasterObject;
                        PurchaseOrderDetail currentobject = (PurchaseOrderDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;
                        currentobject.DocCur   = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseRequest))
                    {
                        PurchaseRequest       masterobject  = (PurchaseRequest)collectionSource.MasterObject;
                        PurchaseRequestDetail currentobject = (PurchaseRequestDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseDelivery))
                    {
                        PurchaseDelivery       masterobject  = (PurchaseDelivery)collectionSource.MasterObject;
                        PurchaseDeliveryDetail currentobject = (PurchaseDeliveryDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseReturn))
                    {
                        PurchaseReturn       masterobject  = (PurchaseReturn)collectionSource.MasterObject;
                        PurchaseReturnDetail currentobject = (PurchaseReturnDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseQuotation))
                    {
                        PurchaseQuotation       masterobject  = (PurchaseQuotation)collectionSource.MasterObject;
                        PurchaseQuotationDetail currentobject = (PurchaseQuotationDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                }
            }

            sDtl  = null;
            sDtlS = null;
        }