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); }
public void SetVRN(VATPeriodFilter p) { if (p.OrganizationID == null) { return; } string vrn; OrganizationTaxInfo org = PXSelect <OrganizationTaxInfo, Where <OrganizationTaxInfo.organizationID, Equal <Required <OrganizationTaxInfo.organizationID> > > > .SelectSingleBound(this, null, p.OrganizationID).FirstOrDefault(); vrn = org.TaxRegistrationID; if (org.FileTaxesByBranches == true && p.BranchID != null) { BranchTaxInfo branch = PXSelect <BranchTaxInfo, Where <BranchTaxInfo.branchID, Equal <Required <BranchTaxInfo.branchID> > > > .SelectSingleBound(this, null, p.BranchID).FirstOrDefault(); vrn = branch.TaxRegistrationID; } VATProvider.setVRN(vrn); }
public virtual IEnumerable CheckVATReturn(PXAdapter adapter) { VATPeriodFilter tp = Period_Header.Current; //PXLongOperation.StartOperation(this, () => HMRCReportTax.CheckVATReturnProc(this, tp)); VATMaint.CheckVATReturnProc(this, tp.PeriodKey); return(adapter.Get()); }
public virtual IEnumerable SignInHMRC(PXAdapter adapter) { VATPeriodFilter filter = Period_Header.Current; //PXLongOperation.StartOperation(this, () => VATMaint.SignInHMRCProc(this, filter)); VATMaint.SignInHMRCProc(this, filter); return(adapter.Get()); }
protected virtual IEnumerable period_Details() { VATPeriodFilter filter = Period_Header.Current; using (new PXReadBranchRestrictedScope(filter.OrganizationID.SingleToArray(), filter.BranchID.SingleToArrayOrNull())) { return(Period_Details_Expanded.Select()); } }
protected void VATPeriodFilter_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e) { baseTaxPeriodFilterRowUpdated(sender, e); VATPeriodFilter filter = (VATPeriodFilter)e.Row; if (!sender.ObjectsEqual <VATPeriodFilter.organizationID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.branchID>(e.Row, e.OldRow)) { SetVRN(filter); } if (!sender.ObjectsEqual <VATPeriodFilter.organizationID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.branchID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.vendorID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.taxPeriodID>(e.Row, e.OldRow) ) { filter.Start = null; filter.End = null; filter.PeriodKey = null; filter.Due = null; filter.Status = null; filter.Received = null; } if (!sender.ObjectsEqual <VATPeriodFilter.periodKey>(e.Row, e.OldRow)) { Obligation o = (Obligation)this.Obligations.Cache.Locate(new Obligation() { PeriodKey = filter.PeriodKey }); if (o != null) { filter.Start = o.Start; filter.End = o.End; filter.Status = o.Status; filter.Due = o.Due; filter.Received = o.Received; } } if (!sender.ObjectsEqual <VATPeriodFilter.endDate>(e.Row, e.OldRow)) { try { GetVATObligationsForYearProc(this, filter.EndDate ?? DateTime.UtcNow); } catch (Exception) { } } }
public virtual IEnumerable SendVATReturn(PXAdapter adapter) { VATPeriodFilter tp = Period_Header.Current; if (tp.RevisionId == null) { return(adapter.Get()); } WebDialogResult dialogResult = Period_Header.Ask(Messages.VatReturnWillBeSentToHMRC, MessageButtons.YesNoCancel); Period_Header.ClearDialog(); if (dialogResult == WebDialogResult.Cancel) { return(adapter.Get()); } VATMaint.SendVATReturnProc(this, tp, dialogResult == WebDialogResult.Yes); return(adapter.Get()); }
public static void SendVATReturnProc(VATMaint graph, VATPeriodFilter p, bool finalised = false) { #region Tax Box /* * Outputs * Box 1 (vatDueSales) VAT due in the period on sales and other outputs * Box 2 (vatDueAcquisitions) VAT due in the period on acquisitions from other EU member states * Box 3 (totalVatDue) Total VAT due (Box 1 + Box 2) * * Inputs * Box 4 (vatReclaimedCurrPeriod) VAT reclaimed in the period on purchases and other inputs (including acquisitions from the EU) * Box 5 (netVatDue) net VAT to be paid to HMRC or reclaimed (difference between Box 3 and Box 4) * Box 6 (totalValueSalesExVAT) total value of sales and all other outputs excluding any VAT * Box 7 (totalValuePurchasesExVAT) the total value of purchases and all other inputs excluding any VAT * Box 8 (totalValueGoodsSuppliedExVAT) total value of all supplies of goods and related costs, excluding any VAT, to other EU member states * Box 9 (totalAcquisitionsExVAT) total value of all acquisitions of goods and related costs, excluding any VAT, from other EU member states */ #endregion Model.VATreturn ret = new Model.VATreturn() { periodKey = p.PeriodKey, finalised = finalised }; #region fill report decimal amt = 0; foreach (PXResult <TaxReportLine, TaxHistoryReleased> res in graph.Period_Details.Select()) { TaxReportLine line = res; TaxHistoryReleased hist = res; amt = hist.ReportFiledAmt ?? 0; switch (line.ReportLineNbr) { case "1": ret.vatDueSales = amt; break; case "2": ret.vatDueAcquisitions = amt; break; case "3": ret.totalVatDue = amt; break; case "4": ret.vatReclaimedCurrPeriod = amt; break; case "5": ret.netVatDue = amt; break; case "6": ret.totalValueSalesExVAT = amt; break; case "7": ret.totalValuePurchasesExVAT = amt; break; case "8": ret.totalValueGoodsSuppliedExVAT = amt; break; case "9": ret.totalAcquisitionsExVAT = amt; break; } } #endregion try { VATreturnResponse response = graph.VATProvider.SendReturn(ret); PXTrace.WriteInformation(JsonConvert.SerializeObject(response)); } catch (Exceptions.VATAPIInvalidToken eToken) { PXTrace.WriteError(eToken); throw new PXException(Messages.PleaseAuthorize); } catch (Exceptions.VATAPIException eApi) { PXTrace.WriteError(eApi); if (eApi.Data.Contains("errorJson")) { PXTrace.WriteError(eApi.Data["errorJson"].ToString()); } throw eApi; } catch (Exception e) { PXTrace.WriteError(e); throw e; } throw new PXException(Messages.VATreturnIsAccepted); }
public static void SignInHMRCProc(VATMaint graph, VATPeriodFilter filter) { graph.VATProvider.SignIn(); throw new PXRefreshException(); }
protected virtual void baseTaxPeriodFilterRowUpdated(PXCache sender, PXRowUpdatedEventArgs e) { VATPeriodFilter filter = (VATPeriodFilter)e.Row; if (filter == null) { return; } if (!sender.ObjectsEqual <VATPeriodFilter.organizationID, VATPeriodFilter.branchID>(e.Row, e.OldRow)) { List <PXView> views = this.Views.Select(view => view.Value).ToList(); foreach (var view in views) { view.Clear(); } } if (!sender.ObjectsEqual <VATPeriodFilter.organizationID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.branchID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.vendorID>(e.Row, e.OldRow)) { if (filter.OrganizationID != null && filter.VendorID != null) { PX.Objects.TX.TaxPeriod taxper = TaxYearMaint.FindPreparedPeriod(this, filter.OrganizationID, filter.VendorID); if (taxper != null) { filter.TaxPeriodID = taxper.TaxPeriodID; } else { taxper = TaxYearMaint.FindLastClosedPeriod(this, filter.OrganizationID, filter.VendorID); filter.TaxPeriodID = taxper != null ? taxper.TaxPeriodID : null; } } else { filter.TaxPeriodID = null; } } Organization organization = OrganizationMaint.FindOrganizationByID(this, filter.OrganizationID); if (!sender.ObjectsEqual <VATPeriodFilter.organizationID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.branchID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.vendorID>(e.Row, e.OldRow) || !sender.ObjectsEqual <VATPeriodFilter.taxPeriodID>(e.Row, e.OldRow) || filter.RevisionId == null) { if (filter.OrganizationID != null && (filter.BranchID != null && organization.FileTaxesByBranches == true || organization.FileTaxesByBranches != true) && filter.VendorID != null && filter.TaxPeriodID != null) { filter.RevisionId = ReportTaxProcess.CurrentRevisionId(this, filter.OrganizationID, filter.BranchID, filter.VendorID, filter.TaxPeriodID); } else { filter.RevisionId = null; } } }