Esempio n. 1
0
        /// <summary>
        /// Создание записи регистра План-Факт
        /// </summary>
        /// <param name="scVersion"></param>
        /// <param name="di"></param>
        /// <returns></returns>
        private crmPlaneFactRegister CreatePlaneFactRegister(Session ssn, crmDealWithoutStageVersion scVersion, crmPaymentItem pi)
        {
            crmPlaneFactRegister pfr = new crmPlaneFactRegister(ssn);

            // Используем ((crmDealWithoutStage)scVersion.MainObject).Oid как token (метку для разспознавания набора связанных записей)
            Guid token = ((crmDealWithoutStage)scVersion.MainObject).Oid;

            pfr.Token = token;

            if (scVersion.ContractDeal != null)
            {
                pfr.Contract = scVersion.ContractDeal.Contract;
            }
            pfr.ContractDeal = scVersion.ContractDeal;
            pfr.CostItem     = pi.CostItem;
            pfr.Creditor     = scVersion.Customer.Party;
            pfr.Debitor      = scVersion.Supplier.Party;
            pfr.fmOrder      = pi.Order;
            pfr.Subject      = (pi.Order != null) ? pi.Order.Subject : null;
            pfr.PlaneFact    = PlaneFact.PLAN;

            //!Паша пока без финансовых сделок
            //            if (scVersion.FinancialDeal != null) {
            //                pfr.FinancialDeal = di.FinancialDeal.FinancialDeal;
            //            }

            pfr.Valuta = pi.Valuta;
            pfr.Cost   = pi.SummFull;
            //pfr.CostInRUR = di.Price;  // Надо вычислять с учётом прайса, курса по прайсу и т.п.

            pfr.Nomenclature = pi.Nomenclature;

            return(pfr);
        }
Esempio n. 2
0
        private void AddPFRegisterRecords(crmDealLongServiceVersion scVersion)
        {
            crmPlaneFactRegister pfr = new crmPlaneFactRegister(this.Session);

            pfr.Contract     = scVersion.ContractDeal.Contract;
            pfr.ContractDeal = scVersion.ContractDeal;
            pfr.CostItem     = scVersion.CostItem;
            pfr.Creditor     = scVersion.Customer.Party;
            pfr.Debitor      = scVersion.Supplier.Party;
            pfr.fmOrder      = scVersion.Order;
            pfr.PlaneFact    = PlaneFact.PLAN;

            //pfr.Nomenclature = scVersion.DeliveryUnit.DeliveryItems;   // SHU!!! Не ясно, откуда брать номенклатуру
            //pfr.FinancialDeal = scVersion.FinancialDeal.FinancialDeal;

            //pfr.MeasureUnit = scVersion.Order;
            //pfr.Volume = scVersion.;

            pfr.Valuta = scVersion.Valuta;
            pfr.Cost   = scVersion.Price;
            //pfr.CostInRUR = scVersion.Price;  // Надо вычислять с учётом прайса, курса по прайсу и т.п.

            pfr.Save();
        }
Esempio n. 3
0
        /// <summary>
        /// Создание записи регистра План-Факт
        /// </summary>
        /// <param name="scVersion"></param>
        /// <param name="di"></param>
        /// <returns></returns>
        private crmPlaneFactRegister CreatePlaneFactCommonRegister(Session ssn, crmDealWithStageVersion scVersion, crmStage stage, crmObligationTransfer obligationItem)
        {
            crmPlaneFactRegister pfr = new crmPlaneFactRegister(ssn);

            // Используем ((crmDealWithoutStage)scVersion.MainObject).Oid как token (метку для разспознавания набора связанных записей)
            Guid token = ((crmDealWithStage)scVersion.MainObject).Oid;

            pfr.Token = token;

            pfr.Contract     = scVersion.ContractDeal.Contract;
            pfr.ContractDeal = scVersion.ContractDeal;
            pfr.CostItem     = scVersion.CostItem;
            pfr.Creditor     = scVersion.Customer.Party;
            pfr.Debitor      = scVersion.Supplier.Party;
            pfr.fmOrder      = scVersion.Order;
            pfr.Subject      = (scVersion.Order != null) ? scVersion.Order.Subject : null;
            pfr.PlaneFact    = PlaneFact.PLAN;
            pfr.Stage        = stage;

            // ??? pfr.CostInRUR = scVersion.;

            //pfr.FinancialDeal - заменяется на финансовый этап
            //!Паша пока без финансовых сделок
            //            if (scVersion.FinancialDeal != null) {
            //                pfr.FinancialDeal = di.FinancialDeal.FinancialDeal;
            //            }

            //pfr.Nomenclature = scVersion.DeliveryUnit.DeliveryItems;   // SHU!!! Не ясно, откуда брать номенклатуру
            //pfr.FinancialDeal = scVersion.FinancialDeal.FinancialDeal;

            //pfr.MeasureUnit = scVersion.Order;
            //pfr.Volume = scVersion.;

            //pfr.Valuta = scVersion.Valuta;
            //pfr.Cost = scVersion.Price;
            //pfr.CostInRUR = scVersion.Price;  // Надо вычислять с учётом прайса, курса по прайсу и т.п.

            pfr.Nomenclature = obligationItem.Nomenclature;

            crmDeliveryItem deliveryItem = obligationItem as crmDeliveryItem;

            if (deliveryItem != null)
            {
                pfr.MeasureUnit = deliveryItem.CountUnit;
                pfr.Volume      = deliveryItem.CountValue;

                pfr.Valuta = deliveryItem.Valuta;
                pfr.Cost   = deliveryItem.Price;
            }

            crmPaymentItem paymentItem = obligationItem as crmPaymentItem;

            if (paymentItem != null)
            {
                pfr.MeasureUnit = null;
                pfr.Volume      = 0;

                pfr.Valuta = paymentItem.Valuta;
                pfr.Cost   = paymentItem.SummFull;
            }

            return(pfr);
        }