Esempio n. 1
0
        public void UpdateTrwNomenclature()
        {
            if (Nomenclature == null || Order == null)
            {
                return;
            }
            TrwSaleNomenclature old = _TrwSaleNomenclature;

            if (old == null || old.Order != Order || old.Nomenclature != Nomenclature)
            {
                IObjectSpace os = ObjectSpace.FindObjectSpaceByObject(this);
                _TrwSaleNomenclature = os.GetObjects <TrwSaleNomenclature>(
                    new OperandProperty("Order") == Order &
                    new OperandProperty("Nomenclature") == Nomenclature, true).FirstOrDefault();
                if (_TrwSaleNomenclature == null)
                {
                    _TrwSaleNomenclature              = os.CreateObject <TrwSaleNomenclature>();
                    _TrwSaleNomenclature.Order        = Order;
                    _TrwSaleNomenclature.Nomenclature = Nomenclature;
                    TrwOrder trw_order = Order.Subject.TrwOrders.FirstOrDefault(x => x.Deal == this.DeliveryUnit.DealVersion.ContractDeal);
                    if (trw_order == null)
                    {
                        Order.Subject.Deals.Add(this.DeliveryUnit.DealVersion.ContractDeal);
                        trw_order = Order.Subject.TrwOrders.FirstOrDefault(x => x.Deal == this.DeliveryUnit.DealVersion.ContractDeal);
                    }
                    if (trw_order != null)
                    {
                        trw_order.TrwSaleNomenclatures.Add(_TrwSaleNomenclature);
                    }
                }
                OnChanged("TrwSaleNomenclature", old, _TrwSaleNomenclature);
            }
        }
Esempio n. 2
0
        public void DealsAdd(crmContractDeal deal)
        {
            if (deal.TRVType == null || deal.TRVType.TrwContractSuperType != TrwContractSuperType.DEAL_SALE)
            {
                return;
            }
            TrwOrder cur_order = null;

            foreach (TrwOrder trw_order in this.TrwOrders)
            {
                if (trw_order.Deal == deal)
                {
                    cur_order = trw_order;
                }
            }
            if (cur_order == null)
            {
                cur_order         = new TrwOrder(this.Session);
                cur_order.Subject = this;
                cur_order.Deal    = deal;
            }
        }
Esempio n. 3
0
 private void UpdateTrwOrders()
 {
     //
     using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) {
         IList <fmCSubject> subjects = os.GetObjects <fmCSubject>();
         foreach (fmCSubject subject in subjects)
         {
             foreach (fmCOrder order in subject.Orders)
             {
                 if (order.SourceDeal != null)
                 {
                     subject.Deals.Add(order.SourceDeal);
                 }
             }
             foreach (crmContractDeal deal in subject.Deals)
             {
                 if (deal.TRVType == null || deal.TRVType.TrwContractSuperType != TrwContractSuperType.DEAL_SALE)
                 {
                     continue;
                 }
                 TrwOrder cur_order = null;
                 foreach (TrwOrder trw_order in subject.TrwOrders)
                 {
                     if (trw_order.Deal == deal)
                     {
                         cur_order = trw_order;
                     }
                 }
                 if (cur_order == null)
                 {
                     cur_order         = os.CreateObject <TrwOrder>();
                     cur_order.Subject = subject;
                     cur_order.Deal    = deal;
                 }
             }
         }
         os.CommitChanges();
     }
 }
Esempio n. 4
0
 public static void RefreshDeal(IObjectSpace os, TrwSubjectDealSale subj_deal)
 {
     if (subj_deal.DealType == TrwSubjectDealType.TRW_SUBJECT_DEAL_UNKNOW ||
         subj_deal.TrwSubjectBase == null)
     {
         return;
     }
     if (subj_deal.DealType == TrwSubjectDealType.TRW_SUBJECT_DEAL_REAL)
     {
         if (subj_deal.Deal == null)
         {
             return;
         }
         DateTime period_end = new DateTime(subj_deal.TrwSubject.Period.Year, 12, 31);
         foreach (fmCSubject subj in subj_deal.TrwSubjectBase.Subjects)
         {
             TrwOrder trw_order = subj_deal.Deal.TrwOrders.FirstOrDefault(x => x.Subject == subj);
             if (trw_order == null)
             {
                 subj.Deals.Add(subj_deal.Deal);
                 trw_order = subj_deal.Deal.TrwOrders.FirstOrDefault(x => x.Subject == subj);
             }
             if (subj_deal.Nomenclature != null)
             {
                 foreach (fmCOrder order in subj.Orders)
                 {
                     if (order.IsClosed || order.DateBegin > period_end)
                     {
                         continue;
                     }
                     TrwSubjectDealSaleOrder trw_subj_deal_order = subj_deal.DealSaleOrders.FirstOrDefault(x => x.Order == order);
                     if (trw_subj_deal_order == null)
                     {
                         trw_subj_deal_order = os.CreateObject <TrwSubjectDealSaleOrder>();
                         subj_deal.DealSaleOrders.Add(trw_subj_deal_order);
                         trw_subj_deal_order.TrwOrderSet(trw_order);
                         trw_subj_deal_order.Order = order;
                         trw_order.TrwSaleNomenclatures.Add(trw_subj_deal_order.TrwSaleNomenclature);
                     }
                 }
             }
         }
     }
     else
     {
         if (subj_deal.DealBudget == null)
         {
             return;
         }
         DateTime period_end = new DateTime(subj_deal.TrwSubject.Period.Year, 12, 31);
         foreach (fmCSubject subj in subj_deal.TrwSubjectBase.Subjects)
         {
             if (subj_deal.DealBudget == null)
             {
                 return;
             }
             TrwOrder trw_order = subj_deal.DealBudget.TrwOrders.FirstOrDefault(x => x.Subject == subj);
             if (trw_order == null)
             {
                 trw_order                = os.CreateObject <TrwOrder>();
                 trw_order.Subject        = subj;
                 trw_order.TrwContractInt = subj_deal.DealBudget;
             }
             trw_order.TrwDateFrom      = subj_deal.DealBudget.TrwDateValidFrom;
             trw_order.TrwDateToPlan    = subj_deal.DealBudget.TrwDateValidToFact;
             trw_order.TrwOrderWorkType = subj_deal.TrwOrderWorkType;
             if (subj_deal.Nomenclature != null)
             {
                 foreach (fmCOrder order in subj.Orders)
                 {
                     if (order.IsClosed || order.DateBegin > period_end)
                     {
                         continue;
                     }
                     TrwSubjectDealSaleOrder trw_subj_deal_order = subj_deal.DealSaleOrders.FirstOrDefault(x => x.Order == order);
                     if (trw_subj_deal_order == null)
                     {
                         trw_subj_deal_order = os.CreateObject <TrwSubjectDealSaleOrder>();
                         subj_deal.DealSaleOrders.Add(trw_subj_deal_order);
                         trw_subj_deal_order.TrwOrderSet(trw_order);
                         trw_subj_deal_order.Order = order;
                         trw_order.TrwSaleNomenclatures.Add(trw_subj_deal_order.TrwSaleNomenclature);
                     }
                 }
             }
         }
     }
 }
Esempio n. 5
0
 public void TrwOrderSet(TrwOrder trw_order)
 {
     SetPropertyValue <TrwOrder>("TrwOrder", ref _TrwOrder, trw_order);
 }