コード例 #1
0
        private static FmJournalOperation MakeOperationPlan0(IObjectSpace os, FmFinPlanSubject fin_plan_subject)
        {
            FmJournalOperation oper = os.CreateObject <FmJournalOperation>();

            fin_plan_subject.PlanFullOperations.Add(oper);
            return(oper);
        }
コード例 #2
0
        protected void MakeLineMaterialOperations(FmFinPlanDocLine line, FmFinPlanDocTime time)
        {
            FmJournalOperation oper = null;

            switch (line.LineType)
            {
            case FmFinPlanLineType.FMFPL_MATERIAL_TOP:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BAY:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BAY_ITEM_COST:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BAY_ITEM_PAY:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BAY_PAY:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BUILD:
                break;

            case FmFinPlanLineType.FMFPL_MATERIAL_BUILD_ITEM:
                break;
            }
        }
コード例 #3
0
        protected FmJournalOperation MakeOperation(FmFinPlanDocLine line, FmFinPlanDocTime time)
        {
            FmJournalOperation oper = ObjectSpace.CreateObject <FmJournalOperation>();

            Document.DocOperations.Add(oper);
            OperationFillDate(oper, time);
            return(oper);
        }
コード例 #4
0
        protected void OperationFillDate(FmJournalOperation oper, FmFinPlanDocTime time)
        {
            switch (time.TimeType)
            {
            case FmFinPlanTimeType.FMFPT_YEAR:
                oper.Date = new DateTime(time.Year, 12, 31);
                break;

            case FmFinPlanTimeType.FMFPT_QUARTER:
                oper.Date = new DateTime(time.Year, time.Quarter * 3, 1).AddMonths(1).AddDays(-1);
                break;

            case FmFinPlanTimeType.FMFPT_MONTH:
                oper.Date = new DateTime(time.Year, time.Month, 1).AddMonths(1).AddDays(-1);
                break;

            default:
                oper.Date = new DateTime(1899, 12, 31);
                break;
            }
        }
コード例 #5
0
        protected void MakeLineCashOperations(FmFinPlanDocLine line, FmFinPlanDocTime time)
        {
            FmJournalOperation oper = null;

            switch (line.LineType)
            {
            case FmFinPlanLineType.FMFPL_CASH_IN_RUB_CASH:
                //oper = MakeOperation(line, time);
                //oper.FinAccountType = FinAccountType.ACC_O_PAY_SUPPLIER;
                //oper.FinOperationType = FinOperationType.CREDIT;
                //oper.FinAccountBalanceType = FinOperationType.CREDIT;
                //oper.CostItem = CostItems.FirstOrDefault(x => x.Code == "7001");
                //oper.BalanceSumma = time.ValueManual;
                //oper.BalanceValuta = line.TopLine.Valuta;
                //oper.Party = line.TopLine.Party;
                //break;
                break;
                //                    oper = MakeOperation(os, doc, line, time);
                //                    oper.DepartmentStructItem =
                //                    break;
            }
        }
コード例 #6
0
        public static void TransactPlan0(IObjectSpace os, FmFinPlanSubject fin_plan_subject, FmFinPlanSubjectDocFull doc)
        {
            if (doc.Order == null)
            {
                throw new NullReferenceException();
            }
            foreach (var oper in new List <FmJournalOperation>(fin_plan_subject.PlanFullOperations))
            {
                if (oper.Order == doc.Order)
                {
                    os.Delete(oper);
                }
//                os.Delete(fin_plan_subject.PlanFullOperations.Where(x => x.Order == doc.Order));
            }
            foreach (var doc_oper in doc.DocOperations)
            {
                FmJournalOperation oper = MakeOperationPlan0(os, fin_plan_subject);
                oper.BalanceSumma          = doc_oper.BalanceSumma;
                oper.BalanceValuta         = doc_oper.BalanceValuta;
                oper.BuhAccount            = doc_oper.BuhAccount;
                oper.CostItem              = doc_oper.CostItem;
                oper.Date                  = doc_oper.Date;
                oper.Deal                  = doc_oper.Deal;
                oper.Department            = doc_oper.Department;
                oper.DepartmentStructItem  = doc_oper.DepartmentStructItem;
                oper.FinAccount            = doc_oper.FinAccount;
                oper.FinAccountBalanceType = doc_oper.FinAccountBalanceType;
                oper.FinAccountType        = doc_oper.FinAccountType;
                oper.FinIndex              = doc_oper.FinIndex;
                oper.FinOperationType      = doc_oper.FinOperationType;
                oper.ObligationSumma       = doc_oper.ObligationSumma;
                oper.ObligationValuta      = doc_oper.ObligationValuta;
                oper.Order                 = doc_oper.Order;
                oper.Party                 = doc_oper.Party;
                oper.PayType               = doc_oper.PayType;
//                oper.Person = doc_oper.Person;
            }
        }
コード例 #7
0
        protected void MakeLinePartyOperations(FmFinPlanDocLine line, FmFinPlanDocTime time)
        {
            FmJournalOperation oper = null;

            switch (line.LineType)
            {
            case FmFinPlanLineType.FMFPL_PARTY_PARTY_RUB_COST:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_O_PAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.CREDIT;
                oper.CostItem      = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.BalanceSumma  = time.ValueManual;
                oper.BalanceValuta = line.TopLine.Valuta;
                oper.Party         = line.TopLine.Party;
                break;

            case FmFinPlanLineType.FMFPL_PARTY_PARTY_RUB_PAY_POST:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_O_PAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.DEBET;
                oper.FinAccountBalanceType = FinOperationType.CREDIT;
                oper.CostItem      = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.BalanceSumma  = time.ValueManual;
                oper.BalanceValuta = line.TopLine.TopLine.Valuta;
                oper.Party         = line.TopLine.TopLine.Party;
                //
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_CASH;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem      = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.BalanceSumma  = time.ValueManual;
                oper.BalanceValuta = line.TopLine.TopLine.Valuta;
                oper.PayType       = PaymentRequest.fmPRPayType.POSTPAYMENT;
                oper.Party         = line.TopLine.TopLine.Party;
                break;

            case FmFinPlanLineType.FMFPL_PARTY_PARTY_RUB_PAY_PRE:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_PREPAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.DEBET;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem      = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.BalanceSumma  = time.ValueManual;
                oper.BalanceValuta = line.TopLine.TopLine.Valuta;
                oper.Party         = line.TopLine.TopLine.Party;
                //
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_CASH;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem      = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.BalanceSumma  = time.ValueManual;
                oper.BalanceValuta = line.TopLine.TopLine.Valuta;
                oper.PayType       = PaymentRequest.fmPRPayType.PREPAYMENT;
                oper.Party         = line.TopLine.TopLine.Party;
                break;

            case FmFinPlanLineType.FMFPL_PARTY_PARTY_VAL_COST:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_O_PAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.CREDIT;
                oper.CostItem         = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.ObligationSumma  = time.ValueManual;
                oper.ObligationValuta = line.TopLine.Valuta;
                oper.Party            = line.TopLine.Party;
                break;

            case FmFinPlanLineType.FMFPL_PARTY_PARTY_VAL_PAY_POST:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_O_PAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.DEBET;
                oper.FinAccountBalanceType = FinOperationType.CREDIT;
                oper.CostItem         = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.ObligationValuta = line.TopLine.TopLine.Valuta;
                oper.ObligationSumma  = time.ValueManual;
                oper.Party            = line.TopLine.TopLine.Party;
                //
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_CASH;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem         = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.ObligationValuta = line.TopLine.TopLine.Valuta;
                oper.ObligationSumma  = time.ValueManual;
                oper.PayType          = PaymentRequest.fmPRPayType.POSTPAYMENT;
                oper.Party            = line.TopLine.TopLine.Party;
                break;

            case FmFinPlanLineType.FMFPL_PARTY_PARTY_VAL_PAY_PRE:
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_PREPAY_SUPPLIER;
                oper.FinOperationType      = FinOperationType.DEBET;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem         = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.ObligationValuta = line.TopLine.TopLine.Valuta;
                oper.ObligationSumma  = time.ValueManual;
                oper.Party            = line.TopLine.TopLine.Party;
                //
                oper = MakeOperation(line, time);
                oper.FinAccountType        = FinAccountType.ACC_A_CASH;
                oper.FinOperationType      = FinOperationType.CREDIT;
                oper.FinAccountBalanceType = FinOperationType.DEBET;
                oper.CostItem         = CostItems.FirstOrDefault(x => x.Code == "7001");
                oper.ObligationValuta = line.TopLine.TopLine.Valuta;
                oper.ObligationSumma  = time.ValueManual;
                oper.PayType          = PaymentRequest.fmPRPayType.PREPAYMENT;
                oper.Party            = line.TopLine.TopLine.Party;
                break;
            }
        }