コード例 #1
0
        public async Task <IdOutputDto <long> > CreatePurchaseOrderEntryDocumentUnit(PurchaseOrderEntryDocumentInputUnit input)
        {
            var purchaseOrderTransactions = input.MapTo <PurchaseOrderEntryDocumentUnit>();

            purchaseOrderTransactions.TypeOfAccountingDocumentId = TypeOfAccountingDocument.PurchaseOrders;

            //Sum of purchase order Details amount
            purchaseOrderTransactions.PoOriginalAmount = !ReferenceEquals(input.PurchaseOrderDetailList, null) ? input.PurchaseOrderDetailList.Sum(u => u.Amount.Value) : 0;

            IdOutputDto <long> response = new IdOutputDto <long>
            {
                Id = await _purchaseOrderEntryDocumentUnitManager.CreateAsync(purchaseOrderTransactions)
            };

            //Null Checking of PurchaseOrderDetailList
            if (!ReferenceEquals(input.PurchaseOrderDetailList, null))
            {
                var source = CoreHelpers.GetSourceType(typeof(PurchaseOrderEntryDocumentDetailUnit).Name);
                //Bulk Insertion of PurchaseOrderDetail
                foreach (var purchaseOrderDetail in input.PurchaseOrderDetailList)
                {
                    purchaseOrderDetail.AccountingDocumentId = response.Id;
                    var purchaseOrderDetailUnit = purchaseOrderDetail.MapTo <PurchaseOrderEntryDocumentDetailUnit>();
                    purchaseOrderDetailUnit.AccountingItemOrigAmount = purchaseOrderDetail.Amount;
                    purchaseOrderDetailUnit.SourceTypeId             = SourceType.PO;
                    await _purchaseOrderDetailUnitManager.CreateAsync(purchaseOrderDetailUnit);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #2
0
        public async Task <IdOutputDto <int> > UpdateDivisionUnit(UpdateJobUnitInput input)
        {
            var jobUnit = await _jobUnitRepository.GetAsync(input.JobId);

            #region Setting the values to be updated

            jobUnit.JobNumber          = input.JobNumber;
            jobUnit.Caption            = input.Caption;
            jobUnit.TypeOfCurrencyId   = input.TypeOfCurrencyId;
            jobUnit.IsActive           = input.IsActive;
            jobUnit.OrganizationUnitId = input.OrganizationUnitId;
            jobUnit.IsDivision         = true;

            #endregion

            await _jobUnitManager.UpdateAsync(jobUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            IdOutputDto <int> response = new IdOutputDto <int>()
            {
                JobId = jobUnit.Id
            };

            return(response);
        }
コード例 #3
0
        public async Task <IdOutputDto <long> > UpdateAccountUnit(UpdateAccountUnitInput input)
        {
            var accountUnit = await _accountUnitRepository.GetAsync(input.AccountId);

            #region Setting the values to be updated

            accountUnit.AccountNumber          = input.AccountNumber;
            accountUnit.Caption                = input.Caption;
            accountUnit.ChartOfAccountId       = input.ChartOfAccountId;
            accountUnit.ParentId               = input.ParentId != 0 ? input.ParentId : null;
            accountUnit.OrganizationUnitId     = input.OrganizationUnitId;
            accountUnit.BalanceSheetName       = input.BalanceSheetName;
            accountUnit.CashFlowName           = input.CashFlowName;
            accountUnit.Description            = input.Description;
            accountUnit.IsActive               = input.IsActive;
            accountUnit.IsApproved             = input.IsApproved;
            accountUnit.IsBalanceSheet         = input.IsBalanceSheet;
            accountUnit.IsCashFlow             = input.IsCashFlow;
            accountUnit.IsDescriptionLocked    = input.IsDescriptionLocked;
            accountUnit.IsDocControlled        = input.IsDocControlled;
            accountUnit.IsElimination          = input.IsElimination;
            accountUnit.IsEnterable            = input.IsEnterable;
            accountUnit.IsProfitLoss           = input.IsProfitLoss;
            accountUnit.IsRollupAccount        = input.IsRollupAccount;
            accountUnit.IsRollupOverridable    = input.IsRollupOverridable;
            accountUnit.IsSummaryAccount       = input.IsSummaryAccount;
            accountUnit.IsUs1120BalanceSheet   = input.IsUs1120BalanceSheet;
            accountUnit.IsUs1120IncomeStmt     = input.IsUs1120IncomeStmt;
            accountUnit.LinkAccountId          = input.LinkAccountId;
            accountUnit.LinkJobId              = input.LinkJobId;
            accountUnit.ProfitLossName         = input.ProfitLossName;
            accountUnit.RollupAccountId        = input.RollupAccountId;
            accountUnit.IsAccountRevalued      = input.IsAccountRevalued;
            accountUnit.TypeOfCurrencyId       = input.TypeOfCurrencyId;
            accountUnit.TypeOfCurrencyRateId   = input.TypeOfCurrencyRateId;
            accountUnit.TypeofConsolidationId  = input.TypeofConsolidationId;
            accountUnit.RollupJobId            = input.RollupJobId;
            accountUnit.TypeOfAccountId        = input.TypeOfAccountId;
            accountUnit.Us1120BalanceSheetName = input.Us1120BalanceSheetName;
            accountUnit.DisplaySequence        = input.DisplaySequence;
            accountUnit.Us1120IncomeStmtName   = input.Us1120IncomeStmtName;
            #endregion

            await _accountUnitManager.UpdateAsync(accountUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            IdOutputDto <long> responseDto = new IdOutputDto <long>
            {
                AccountId = accountUnit.Id
            };
            return(responseDto);
        }
コード例 #4
0
        public async Task <IdOutputDto <int> > CreateJobDetailUnit(CreateJobCommercialInput input)
        {
            var jobDetailUnit = input.MapTo <JobCommercialUnit>();

            IdOutputDto <int> response = new IdOutputDto <int>()
            {
                JobId = await _jobDetailUnitManager.CreateAsync(jobDetailUnit)
            };

            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #5
0
        public async Task <IdOutputDto <long> > CreateAccountUnit(CreateAccountUnitInput input)
        {
            var accountUnit = input.MapTo <AccountUnit>();

            accountUnit.ParentId = input.ParentId != 0 ? input.ParentId : null;
            IdOutputDto <long> responseDto = new IdOutputDto <long>
            {
                AccountId = await _accountUnitManager.CreateAsync(accountUnit)
            };
            await CurrentUnitOfWork.SaveChangesAsync();

            _unitOfWorkManager.Current.Completed += (sender, args) => { };
            return(responseDto);
        }
コード例 #6
0
        public async Task <IdOutputDto <int> > CreateDivisionUnit(CreateJobUnitInput input)
        {
            var chartofaccount = _coaUnitRepository.FirstOrDefault(p => p.IsCorporate);

            if (ReferenceEquals(chartofaccount, null))
            {
                throw new UserFriendlyException(L("Pleasesetupchartofaccount"));
            }
            var jobUnit = new JobUnit(jobnumber: input.JobNumber, caption: input.Caption, iscorporatedefault: input.IsCorporateDefault, rollupaccountid: input.RollupAccountId,
                                      typeofcurrencyid: input.TypeOfCurrencyId, rollupjobid: input.RollupJobId, typeofjobstatusid: input.TypeOfJobStatusId, typeofbidsoftwareid: input.TypeOfBidSoftwareId,
                                      isapproved: input.IsApproved, isactive: input.IsActive, isictdivision: input.IsICTDivision, organizationunitid: input.OrganizationUnitId, typeofprojectid: input.TypeofProjectId,
                                      taxrecoveryid: input.TaxRecoveryId, chartofaccountid: chartofaccount.Id, rollupcenterid: input.RollupCenterId, isdivision: true, taxcreditid: input.TaxCreditId);
            IdOutputDto <int> response = new IdOutputDto <int>
            {
                JobId = await _jobUnitManager.CreateAsync(jobUnit)
            };

            return(response);
        }
コード例 #7
0
        public async Task <IdOutputDto <long> > CreateAPHeaderTransactionUnit(APHeaderTransactionsInputUnit input)
        {
            var apHeaderTransactions    = input.MapTo <ApHeaderTransactions>();
            IdOutputDto <long> response = new IdOutputDto <long>
            {
                Id = await _apHeaderTransactionsUnitManager.CreateAsync(apHeaderTransactions)
            };

            //Null Checking of InvoiceEntryDocumentDetailList
            if (!ReferenceEquals(input.InvoiceEntryDocumentDetailList, null))
            {
                //Bulk Insertion of InvoiceEntryDocumentDetails
                foreach (var invoiceEntryDocumentDetail in input.InvoiceEntryDocumentDetailList)
                {
                    await CreateAPHeaderTransactionDetailUnit(invoiceEntryDocumentDetail, response.Id);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #8
0
        public async Task <IdOutputDto <long> > CreatePayrollEntryDocumentUnit(PayrollEntryDocumentInputUnit input)
        {
            var payrollEntryDocumentUnit = input.MapTo <PayrollEntryDocumentUnit>();
            IdOutputDto <long> response  = new IdOutputDto <long>
            {
                Id = await _payrollEntryDocumentUnitManager.CreateAsync(payrollEntryDocumentUnit)
            };

            //Null Checking of PayrollEntryDocumentDetailInputList
            if (!ReferenceEquals(input.PayrollEntryDocumentDetailInputList, null))
            {
                //Bulk Insertion of payrollEntryDocumentDetail
                foreach (var payrollEntryDocumentDetail in input.PayrollEntryDocumentDetailInputList)
                {
                    payrollEntryDocumentDetail.AccountingDocumentId = response.Id;
                    await CreatePayrollEntryDocumentDetailsUnit(payrollEntryDocumentDetail);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <IdOutputDto <long> > CreateCreditCardEntryDocumentUnit(CreditCardEntryDocumentInputUnit input)
        {
            var creditEntryTransactions = input.MapTo <ChargeEntryDocumentUnit>();
            IdOutputDto <long> response = new IdOutputDto <long>
            {
                Id = await _chargeEntryDocumentUnitManager.CreateAsync(creditEntryTransactions)
            };

            //Null Checking of CreditCardEntryDetailList
            if (!ReferenceEquals(input.CreditCardEntryDetailList, null))
            {
                //Bulk Insertion of creditCardEntryDocumentDetail
                foreach (var creditCardEntryDocumentDetail in input.CreditCardEntryDetailList)
                {
                    creditCardEntryDocumentDetail.AccountingDocumentId = response.Id;
                    var invoiceEntryDocumentDetailUnit = creditCardEntryDocumentDetail.MapTo <ChargeEntryDocumentDetailUnit>();
                    await _chargeEntryDocumentDetailUnitManager.CreateAsync(invoiceEntryDocumentDetailUnit);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #10
0
        public async Task <IdOutputDto <long> > CreatePettyCashEntryDocumentUnit(PettyCashEntryDocumentInput input)
        {
            var pcEntryDocumnetUnit     = input.MapTo <PettyCashEntryDocumentUnit>();
            IdOutputDto <long> response = new IdOutputDto <long>
            {
                Id = await _pettyCashEntryDocumnetManager.CreateAsync(pcEntryDocumnetUnit)
            };

            //Null Checking of PettyCashEntryDocumentDetailList
            if (!ReferenceEquals(input.PettyCashEntryDocumentDetailList, null))
            {
                //Bulk Insertion of PettyCashEntryDocumentDetail
                foreach (var pcEntryDocumentDetail in input.PettyCashEntryDocumentDetailList)
                {
                    pcEntryDocumentDetail.AccountingDocumentId = response.Id;
                    var pcEntryDocumentDetailUnit = pcEntryDocumentDetail.MapTo <PettyCashEntryDocumentDetailUnit>();
                    await _pcEntryDocumnetDetailManager.CreateAsync(pcEntryDocumentDetailUnit);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #11
0
        public async Task <IdOutputDto <int> > CreateJobUnit(CreateJobUnitInput input)
        {
            //validating the  BudgetFormat(ChartofAccountId)
            if (input.ChartOfAccountId == null || input.ChartOfAccountId == 0)
            {
                throw new UserFriendlyException(L("BudgetFormatisRequired"));
            }
            CreateJobCommercialInput jobcommercialunit = new CreateJobCommercialInput
            {
                JobNumber           = input.JobNumber,
                Caption             = input.Caption,
                RollupCenterId      = input.RollupCenterId,
                IsCorporateDefault  = input.IsCorporateDefault,
                ChartOfAccountId    = input.ChartOfAccountId,
                RollupAccountId     = input.RollupAccountId,
                TypeOfCurrencyId    = input.TypeOfCurrencyId,
                RollupJobId         = input.RollupJobId,
                TypeOfJobStatusId   = input.TypeOfJobStatusId,
                TypeOfBidSoftwareId = input.TypeOfBidSoftwareId,
                IsApproved          = input.IsApproved,
                IsActive            = input.IsActive,
                IsICTDivision       = input.IsICTDivision,
                TypeofProjectId     = input.TypeofProjectId,
                TaxRecoveryId       = input.TaxRecoveryId
            };
            IdOutputDto <int> response = await _jobCommercialAppService.CreateJobDetailUnit(jobcommercialunit);

            await InsertJobAccounts(input.ChartOfAccountId.Value, response.Id);

            _unitOfWorkManager.Current.Completed += (sender, args) =>
            {
            };
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }
コード例 #12
0
        public async Task <IdOutputDto <int> > UpdateJobUnit(UpdateJobUnitInput input)
        {
            if (input.ChartOfAccountId == 0)
            {
                throw new UserFriendlyException(L("BudgetFormat is Required"));
            }
            var jobUnit = await _jobUnitRepository.GetAsync(input.JobId);

            #region Setting the values to be updated
            jobUnit.JobNumber           = input.JobNumber;
            jobUnit.Caption             = input.Caption;
            jobUnit.IsCorporateDefault  = input.IsCorporateDefault;
            jobUnit.RollupAccountId     = input.RollupAccountId;
            jobUnit.TypeOfCurrencyId    = input.TypeOfCurrencyId;
            jobUnit.RollupJobId         = input.RollupJobId;
            jobUnit.TypeOfJobStatusId   = input.TypeOfJobStatusId;
            jobUnit.TypeOfBidSoftwareId = input.TypeOfBidSoftwareId;
            jobUnit.IsApproved          = input.IsApproved;
            jobUnit.IsActive            = input.IsActive;
            jobUnit.IsICTDivision       = input.IsICTDivision;
            jobUnit.TypeofProjectId     = input.TypeofProjectId;
            jobUnit.TaxRecoveryId       = input.TaxRecoveryId;
            jobUnit.ChartOfAccountId    = input.ChartOfAccountId;
            jobUnit.RollupCenterId      = input.RollupCenterId;
            #endregion


            await _jobUnitManager.UpdateAsync(jobUnit);


            //disable the SoftDelete Filter
            #region Adding the new lines to jobAccount
            using (UnitOfWorkManager.Current.DisableFilter(AbpDataFilters.SoftDelete))
            {
                //get all jobaccounts and Lines
                var jobaccountsList = (from lines in _accountUnitRepository.GetAll().Where(p => p.ChartOfAccountId == input.ChartOfAccountId)
                                       join jobacc in _jobAccountUnitRepository.GetAll() on lines.Id equals jobacc.AccountId into jobaccount
                                       from jobaccounts in jobaccount.DefaultIfEmpty()
                                       join rollUpAccount in _accountUnitRepository.GetAll() on lines.RollupAccountId equals rollUpAccount.Id into rollUpAccount
                                       from rollUpAccounts in rollUpAccount.DefaultIfEmpty()
                                       join rollUpDivision in _jobUnitRepository.GetAll().Where(u => u.IsDivision == true) on lines.RollupJobId equals rollUpDivision.Id into rollUpDivision
                                       from rollUpDivisions in rollUpDivision.DefaultIfEmpty()
                                       select new
                {
                    lines,
                    jobaccounts,
                    rollUpAccountDescription = rollUpAccounts.Caption,
                    rollUpDivisionDescription = rollUpDivisions.Caption
                }).ToList();
                //bulkinsertion
                foreach (var jobaccount in jobaccountsList)
                {
                    if (ReferenceEquals(jobaccount.jobaccounts, null) && !jobaccount.lines.IsDeleted)
                    {
                        CreateJobAccountUnitInput jobAccount = new CreateJobAccountUnitInput
                        {
                            JobId                    = input.JobId,
                            AccountId                = jobaccount.lines.Id,
                            RollupAccountId          = input.RollupAccountId,
                            RollupJobId              = input.RollupJobId,
                            Description              = jobaccount.lines.Caption,
                            RollupJobDescription     = jobaccount.rollUpDivisionDescription,
                            RollupAccountDescription = jobaccount.rollUpAccountDescription,
                        };

                        await _jobAccountUnitAppService.CreateJobAccountUnit(jobAccount);
                    }
                }
            }
            #endregion



            #region updating all JobAccounts of Job
            //bulk update
            if (!ReferenceEquals(input.JobAccountList, null))
            {
                foreach (var jobAccounts in input.JobAccountList)
                {
                    await _jobAccountUnitAppService.UpdateJobAccountUnit(jobAccounts);
                }
            }
            IdOutputDto <int> responseDto = new IdOutputDto <int>
            {
                JobId = jobUnit.Id
            };
            return(responseDto);

            #endregion
        }