/// <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); }
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(); }
/// <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); }