Ejemplo n.º 1
0
        protected void baseVATPeriodFilterRowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            VATPeriodFilter filter = e.Row as VATPeriodFilter;

            if (filter?.OrganizationID == null)
            {
                return;
            }

            Organization organization = OrganizationMaint.FindOrganizationByID(this, filter.OrganizationID);

            if (organization.FileTaxesByBranches == true && filter.BranchID == null ||
                filter.VendorID == null || filter.TaxPeriodID == null)
            {
                return;
            }

            TaxPeriod taxPeriod = Period.Select();

            int?maxRevision = ReportTaxProcess.CurrentRevisionId(sender.Graph, filter.OrganizationID, filter.BranchID, filter.VendorID, filter.TaxPeriodID);

            filter.StartDate = taxPeriod?.StartDateUI;
            filter.EndDate   = taxPeriod?.EndDate != null     ? (DateTime?)(((DateTime)taxPeriod.EndDate).AddDays(-1)) : null;

            PXUIFieldAttribute.SetEnabled <VATPeriodFilter.revisionId>(sender, null, maxRevision > 1);
            PXUIFieldAttribute.SetEnabled <VATPeriodFilter.taxPeriodID>(sender, null, true);
        }
Ejemplo n.º 2
0
 public void UnPostLedger(TaxPeriod salesTax)
 {
     // Console.WriteLine("> Un Posting ,salesTax" + salesTax.No);
     organization.LedgersDal.RemoveTransaction(salesTax.Id);
     salesTax.PostStatus = LedgerPostStatus.ReadyToPost;
     erpNodeDBContext.SaveChanges();
 }
Ejemplo n.º 3
0
        public List <CommercialTax> GetUnassignCommercialTaxes(TaxPeriod taxPeriod)
        {
            var unassignCommercials = organization.CommercialTaxes.GetAssignAbleCommercialTaxesList()
                                      .Where(com => com.Commercial.TransactionDate <= taxPeriod.TransactionDate)
                                      .ToList();

            return(unassignCommercials);
        }
Ejemplo n.º 4
0
        public ProcessingResult CheckGAFGenerationRequirements(int?branchID, TaxPeriod taxPeriod)
        {
            var result = ValidateTaxYearStructure(taxPeriod);
            var documentCheckingResult = CheckUnreleasedAndUnpostedDocumentsDoNotExist(branchID, taxPeriod);

            result.Aggregate(documentCheckingResult);

            return(result);
        }
Ejemplo n.º 5
0
        public bool PostLedger(TaxPeriod taxPeriod, bool SaveImmediately = true)
        {
            if (taxPeriod.PostStatus == LedgerPostStatus.Posted)
            {
                return(false);
            }

            taxPeriod.ReCalculate();

            var trLedger = new Models.Accounting.LedgerGroup()
            {
                Id = taxPeriod.Id,
                TransactionDate = taxPeriod.TransactionDate,
                TransactionName = taxPeriod.Name,
                TransactionNo   = taxPeriod.No ?? 0,
                TransactionType = transactionType
            };

            taxPeriod.GetCommercialTaxGroups().ForEach(taxGroup =>
            {
                switch (taxGroup.TaxCode.TaxDirection)
                {
                case TaxDirection.Input:
                    Console.WriteLine($"INP =>{taxGroup.TaxCode.TaxAccount.Name}{taxGroup.TaxBalance}");
                    trLedger.AddCredit(taxGroup.TaxCode.TaxAccount, taxGroup.TaxBalance);
                    break;

                case TaxDirection.Output:
                    Console.WriteLine($"OUT =>{taxGroup.TaxCode.TaxAccount.Name}{taxGroup.TaxBalance}");
                    trLedger.AddDebit(taxGroup.TaxCode.TaxAccount, taxGroup.TaxBalance);
                    break;
                }
            });

            if (taxPeriod.CloseToAccount.Type == Models.ChartOfAccount.AccountTypes.Asset)
            {
                trLedger.AddDebit(taxPeriod.CloseToAccount, Math.Abs(taxPeriod.ClosingAmount));
            }
            else if (taxPeriod.CloseToAccount.Type == Models.ChartOfAccount.AccountTypes.Liability)
            {
                trLedger.AddCredit(taxPeriod.CloseToAccount, Math.Abs(taxPeriod.ClosingAmount));
            }

            if (trLedger.FinalValidate())
            {
                erpNodeDBContext.LedgerGroups.Add(trLedger);
                taxPeriod.PostStatus = LedgerPostStatus.Posted;
            }

            if (SaveImmediately && taxPeriod.PostStatus == LedgerPostStatus.Posted)
            {
                erpNodeDBContext.SaveChanges();
            }

            return(true);
        }
Ejemplo n.º 6
0
        public void Delete(TaxPeriod taxPeriod)
        {
            taxPeriod.CommercialTaxes.ToList().ForEach(c =>
            {
                taxPeriod.CommercialTaxes.Remove(c);
            });

            erpNodeDBContext.TaxPeriods.Remove(taxPeriod);

            organization.SaveChanges();
        }
Ejemplo n.º 7
0
        public TaxPeriod Create()
        {
            var newTaxPeriod = new TaxPeriod()
            {
                Id = Guid.NewGuid(),
                TransactionDate = DateTime.Today,
            };

            erpNodeDBContext.TaxPeriods.Add(newTaxPeriod);
            erpNodeDBContext.SaveChanges();

            return(newTaxPeriod);
        }
Ejemplo n.º 8
0
        public ProcessingResult ValidateTaxYearStructure(TaxPeriod taxPeriod)
        {
            var finPeriodWithSameStartDate = _gafRepository.FindFinPeriodWithStartDate(taxPeriod.StartDate);
            var finPeriodWithSameEndDate   = _gafRepository.FindFinPeriodWithEndDate(taxPeriod.EndDate);

            if (finPeriodWithSameStartDate == null || finPeriodWithSameEndDate == null)
            {
                var result = new ProcessingResult();
                result.AddErrorMessage(Messages.TheGAFFileCannotBePrepared);
                return(result);
            }

            return(ProcessingResult.Success);
        }
Ejemplo n.º 9
0
        public void AutoAssignCommercial(TaxPeriod taxPeriod)
        {
            if (taxPeriod.PostStatus == LedgerPostStatus.Posted)
            {
                this.UnPostLedger(taxPeriod);
            }

            var comTaxes = this.GetUnassignCommercialTaxes(taxPeriod);

            comTaxes.ToList().ForEach(comTax =>
            {
                taxPeriod.CommercialTaxes.Add(comTax);
            });

            taxPeriod.ReCalculate();
            erpNodeDBContext.SaveChanges();
        }
Ejemplo n.º 10
0
        public static TaxPeriod CreateTaxPeriod(string dataAreaId,
                                                string taxPeriodId,
                                                global::System.DateTimeOffset fromDate,
                                                global::System.DateTimeOffset toDate,
                                                int taxPaymentVersion,
                                                int numberOfUnit)
        {
            TaxPeriod taxPeriod = new TaxPeriod();

            taxPeriod.dataAreaId        = dataAreaId;
            taxPeriod.TaxPeriodId       = taxPeriodId;
            taxPeriod.FromDate          = fromDate;
            taxPeriod.ToDate            = toDate;
            taxPeriod.TaxPaymentVersion = taxPaymentVersion;
            taxPeriod.NumberOfUnit      = numberOfUnit;
            return(taxPeriod);
        }
 private RegistroSiiPeriodoLiquidacion Convert(TaxPeriod taxPeriod)
 {
     return(new RegistroSiiPeriodoLiquidacion
     {
         Ejercicio = Convert(taxPeriod.Year),
         Periodo = taxPeriod.Month.Match(
             Month.January, _ => TimePeriodType.January,
             Month.February, _ => TimePeriodType.February,
             Month.March, _ => TimePeriodType.March,
             Month.April, _ => TimePeriodType.April,
             Month.May, _ => TimePeriodType.May,
             Month.June, _ => TimePeriodType.June,
             Month.July, _ => TimePeriodType.July,
             Month.August, _ => TimePeriodType.August,
             Month.September, _ => TimePeriodType.September,
             Month.October, _ => TimePeriodType.October,
             Month.November, _ => TimePeriodType.November,
             Month.December, _ => TimePeriodType.December
             )
     });
 }
Ejemplo n.º 12
0
        public int AssignCommercialTaxs(TaxPeriod taxPeriod, string commercialsId)
        {
            List <Guid> commercialsIdList = commercialsId?.Trim().Split(',')
                                            .Select(s => Guid.Parse(s))
                                            .ToList();

            var unassignComTaxes = erpNodeDBContext.CommercialTaxes
                                   .Where(c => commercialsIdList.Contains(c.Id))
                                   .ToList();

            int assignCount = 0;

            unassignComTaxes.ForEach(comTax =>
            {
                assignCount++;
                taxPeriod.AddCommercialTax(comTax, false);
            });

            taxPeriod.ReCalculate();
            erpNodeDBContext.SaveChanges();

            return(assignCount);
        }
 public ITaxEstimator Select(TaxPeriod period)
 {
     return(_estimatorsByPeriod[period]);
 }
Ejemplo n.º 14
0
 public ITaxEstimator Select(TaxPeriod period)
 {
     return _estimatorsByPeriod[period];
 }
Ejemplo n.º 15
0
 public void AddTaxRate(TaxPeriod period, ITaxEstimator estimator)
 {
     _estimatorsByPeriod.Add(period, estimator);
 }
Ejemplo n.º 16
0
        public ProcessingResult CheckUnreleasedAndUnpostedDocumentsDoNotExist(int?branchID, TaxPeriod taxPeriod)
        {
            var lastFinPeriod = _gafRepository.FindFinPeriodWithEndDate(taxPeriod.EndDate);

            var result = new ProcessingResult();
            var modulesWithUnreleasedDocuments = new List <string>();

            if (!_gafRepository.CheckDoNotExistUnreleasedAPRegistersWithAPTransWithBranchWithFinPeriodLessOrEqual(branchID, lastFinPeriod.FinPeriodID))
            {
                modulesWithUnreleasedDocuments.Add(BatchModule.AP);
            }
            if (!_gafRepository.CheckDoNotExistUnreleasedARRegistersWithARTransWithBranchWithFinPeriodLessOrEqual(branchID, lastFinPeriod.FinPeriodID))
            {
                modulesWithUnreleasedDocuments.Add(BatchModule.AR);
            }
            if (!_gafRepository.CheckDoNotExistUnreleasedCAAdjsWithCASplitsWithBranchWithFinPeriodLessOrEqual(branchID, lastFinPeriod.FinPeriodID))
            {
                modulesWithUnreleasedDocuments.Add(BatchModule.CA);
            }

            if (modulesWithUnreleasedDocuments.Any())
            {
                result.AddMessage(PXErrorLevel.Warning, Messages.ThereAreUnreleasedDocumentsInModules,
                                  modulesWithUnreleasedDocuments.JoinIntoStringForMessage(edgingSymbol: null));
            }

            if (!_gafRepository.CheckDoNotExistUnreleasedOrUnpostedGLTransWithBranchWithFinPeriodLessOrEqual(branchID, lastFinPeriod.FinPeriodID))
            {
                result.AddMessage(PXErrorLevel.Warning, Messages.ThereAreUnpostedTransactions);
            }

            return(result);
        }
Ejemplo n.º 17
0
 public List <TaxPeriod> GetLedger(TaxPeriod taxPeriod) => erpNodeDBContext.TaxPeriods
 .Where(tr => tr.Id == taxPeriod.Id)
 .ToList();
 public void AddTaxRate(TaxPeriod period, ITaxEstimator estimator)
 {
     _estimatorsByPeriod.Add(period, estimator);
 }