public GAFGenerationProcess() { _gafRepository = new GAFRepository(this); _gafValidator = new GAFValidator(_gafRepository); }
private static void GenerateProc(GAFPeriod gafPeriod) { var gafGenerationProcess = PXGraph.CreateInstance <GAFGenerationProcess>(); IGAFRepository gafRepository = new GAFRepository(gafGenerationProcess); var recordBuilderByVendorData = new PurchaseRecordBuilderByVendorData(gafRepository); var recordBuilderByCustomerData = new SupplyRecordBuilderByCustomerData(gafRepository); var recordBuilderByRegister = new GafRecordBuilderByRegister(gafRepository); var recordCountryBuilderForSO = new SupplyRecordCountryBuilderForSOInvoice(gafRepository); var recordCountryBuilderForAR = new SupplyRecordCountryBuilderForARInvoice(gafRepository); var apInvoiceGAFRecordsCreator = new APInvoiceGAFRecordsCreator(gafRepository, new PurchaseRecordBuilderByInvoiceTran(gafRepository, recordBuilderByVendorData, recordBuilderByRegister), new PurchaseRecordBuilderByTaxTranFromTaxDocument(gafRepository, recordBuilderByVendorData, recordBuilderByRegister), new PurchaseRecordBuilderByAPInvoiceTaxTranForTaxCalcedOnDocumentAmt(gafRepository, recordBuilderByRegister, recordBuilderByVendorData)); var arInvoiceGAFRecordsCreator = new ARInvoiceGAFRecordsCreator(gafRepository, new SupplyRecordBuilderByARInvoice(gafRepository, recordBuilderByRegister, recordBuilderByCustomerData, recordCountryBuilderForAR), new SupplyRecordBuilderByARInvoiceTaxTranForTaxCalcedOnDocumentAmt(gafRepository, recordBuilderByRegister, recordBuilderByCustomerData, recordCountryBuilderForAR)); var arInvoiceFromSOGAFRecordsCreator = new ARInvoiceFromSOGAFRecordsCreator(gafRepository, new SupplyRecordBuilderBySOInvoice(gafRepository, recordBuilderByRegister, recordBuilderByCustomerData, recordCountryBuilderForSO), new SupplyRecordBuilderBySOInvoiceTaxTranForTaxCalcedOnDocumentAmt(gafRepository, recordBuilderByRegister, recordBuilderByCustomerData, recordCountryBuilderForSO)); var apPaymentGAFRecordsCreator = new APPaymentGAFRecordsCreator(gafRepository, new PurchaseRecordBuilderByTaxTranOfAPPayment(gafRepository, recordBuilderByVendorData, recordBuilderByRegister)); var caDocumentPurchaseGAFRecordsCreator = new CADocumentPurchaseGAFRecordsCreator(gafRepository, new PurchaseRecordBuilderByCADocument(gafRepository, recordBuilderByRegister), new PurchaseRecordBuilderByCADocumentTaxTranForTaxCalcedOnDocumentAmt(gafRepository, recordBuilderByRegister)); var caDocumentSupplyGAFRecordsCreator = new CADocumentSupplyGAFRecordsCreator(gafRepository, new SupplyRecordBuilderByCADocument(gafRepository, recordBuilderByRegister), new SupplyRecordBuilderByCADocumentTaxTranForTaxCalcedOnDocumentAmt(gafRepository, recordBuilderByRegister)); var taxAdjustmentGafRecordsCreator = new TaxAdjustmentGAFRecordsCreator(gafRepository, new GafRecordBuilderByTaxAdjustmentTaxTran(gafRepository)); var glDocumentGAFRecordsCreator = new GLDocumentGAFRecordsCreator(gafRepository, new GafRecordBuilderByGLTranAndTaxTran(gafRepository)); var gafCreationHelper = new GAFValidator(gafRepository); var gafDataCreator = new GAFDataCreator(gafRepository, gafCreationHelper, new GLGAFLedgerRecordsCreator(gafRepository), apInvoiceGAFRecordsCreator, arInvoiceGAFRecordsCreator, arInvoiceFromSOGAFRecordsCreator, apPaymentGAFRecordsCreator, caDocumentPurchaseGAFRecordsCreator, caDocumentSupplyGAFRecordsCreator, taxAdjustmentGafRecordsCreator, glDocumentGAFRecordsCreator, new GafRecordWriter(gafRepository)); var gafPeriodFromDB = gafRepository.FindGAFPeriodByKey(gafPeriod.BranchID, gafPeriod.TaxAgencyID, gafPeriod.TaxPeriodID); gafPeriod = gafPeriodFromDB ?? gafGenerationProcess.GAFPeriodView.Insert(gafPeriod); var gstAuditFile = gafDataCreator.Create(gafPeriod, gafGenerationProcess.Accessinfo.BusinessDate.Value); if (gstAuditFile == null) { return; } gafPeriod.GAFMajorVersion = gstAuditFile.MajorVersion; gafPeriod.GAFMinorLastVersion = gstAuditFile.MinorVersion; gafGenerationProcess.GAFPeriodView.Update(gafPeriod); using (var ts = new PXTransactionScope()) { PX.Objects.Common.Tools.UploadFileHelper.AttachDataAsFile(gstAuditFile.FileName, gstAuditFile.Data, gafPeriod, gafGenerationProcess); gafGenerationProcess.Actions.PressSave(); ts.Complete(); } }