public static HeaderPt ToHeaderPt(this AuditFile a) { return(new HeaderPt { Ficheiro_Auditoria = a.Header.AuditFileVersion, Registo_Comercial_Empresa = a.Header.CompanyID, NIF_Empresa = a.Header.TaxRegistrationNumber, Nome_Empresa = a.Header.CompanyName, Designacao_Comercial = a.Header.BusinessName, Endereco_Detalhado = a.Header.CompanyAddress.AddressDetail, Ano_Fiscal = a.Header.FiscalYear, Data_Inicio = a.Header.StartDate, Data_Fim = a.Header.EndDate, Codigo_Moeda = a.Header.CurrencyCode, Data_Criacao = a.Header.DateCreated, Identificacao_Estabelecimento = a.Header.TaxEntity, NIF_Produtora_Software = a.Header.ProductCompanyTaxID, Numero_Certificado = a.Header.SoftwareCertificateNumber, Nome_Aplicacao = a.Header.ProductID, Versao_Aplicacao = a.Header.ProductVersion, //Total_Registos = a?.SourceDocuments?.SalesInvoices != null // ? a.SourceDocuments.SalesInvoices.NumberOfEntries.ToAuditInt() // : 0, //Total_Creditos = a?.SourceDocuments?.SalesInvoices != null // ? a.SourceDocuments.SalesInvoices.TotalCredit.ToAuditFloat() // : 0, //Total_Debitos = a?.SourceDocuments?.SalesInvoices != null // ? a.SourceDocuments.SalesInvoices.TotalDebit.ToAuditFloat() // : 0, }); }
public static AuditFile FromXml(this AuditFile auditFile, string xml) { XmlSerializer serializer = new XmlSerializer(typeof(AuditFile)); using (TextReader reader = new StringReader(xml)) { auditFile = (AuditFile)serializer.Deserialize(reader); return(auditFile); } }
private bool ValidateFile(AuditFile b) { bool r = true; var a = Globals.AttachedFiles.Where(x => x.IsPrincipal == true).FirstOrDefault().AuditFile; if (a.Header.CompanyID != b.Header.CompanyID) { r = false; } return(r); }
public AuditFile getAduditFile() { // AuditFileHeader: Completo auditFile = new AuditFile() { Header = getHeader(), MasterFiles = masterFiles(), SourceDocuments = SourceDocuments() }; return(auditFile); }
private void LoadInvoices(AuditFile saft) { if (saft != null && saft.SourceDocuments != null && saft.SourceDocuments.SalesInvoices != null && saft.SourceDocuments.SalesInvoices.Invoice != null && saft.SourceDocuments.SalesInvoices.Invoice.Length > 0) { HasDocuments = true; allLines = saft.SourceDocuments.SalesInvoices.Invoice.SelectMany(i => i.Line).ToArray(); allInvoices = saft.SourceDocuments.SalesInvoices.Invoice; TotalDebit = saft.SourceDocuments.SalesInvoices.TotalDebit; TotalCredit = saft.SourceDocuments.SalesInvoices.TotalCredit; } AgruparDocumentosDia = true; AgruparLinhasPorCodigo = true; InitResumo(); }
public static bool salvar(AuditFile auditFile, string pasta, string filename) { bool sucesso = true; try { auditFile.ToString(); string fileName = @"\" + filename + ".xml"; if (!Directory.Exists(pasta)) { Directory.CreateDirectory(pasta); } pasta = pasta + fileName; XmlSerializer xmlSer = new XmlSerializer(typeof(AuditFile)); using (StringWriter arquivo = new UTF8StringWriter()) { xmlSer.Serialize(arquivo, auditFile); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(arquivo.ToString()); xmlDoc.Save(@pasta); } } catch (Exception ex) { sucesso = false; Console.WriteLine(ex.Message); } return(sucesso); }
public bool UpdateAuditFile(AuditFile auditFile) { _db.AuditFiles.Update(auditFile); return(Save()); }
public bool DeleteAuditFile(AuditFile auditFile) { _db.AuditFiles.Remove(auditFile); return(Save()); }
public bool CreateAuditFile(AuditFile auditFile) { _db.AuditFiles.Add(auditFile); return(Save()); }
public AuditFile MergeAudits() { AuditFile audit = OpenFile(Globals.AttachedFiles .Where(x => x.IsPrincipal == true) .FirstOrDefault().FilePath); foreach (var file in Globals.AttachedFiles.Where(x => x.IsPrincipal == false)) { var subaudit = OpenFile(file.FilePath); // merge customers audit.MasterFiles.Customer = audit .MasterFiles .Customer .Concat( subaudit.MasterFiles .Customer .Where(p => audit.MasterFiles.Customer.All(p2 => p2.CustomerID != p.CustomerID)) ) .ToList(); // merge taxtables audit.MasterFiles.TaxTable.TaxTableEntry = audit .MasterFiles .TaxTable .TaxTableEntry .Concat( subaudit.MasterFiles.TaxTable .TaxTableEntry .Where(p => audit.MasterFiles.TaxTable.TaxTableEntry.All(p2 => p2.TaxCode != p.TaxCode && p2.TaxPercentage != p.TaxPercentage)) ) .ToList(); // merge products audit.MasterFiles.Product = audit .MasterFiles .Product .Concat( subaudit.MasterFiles .Product .Where(p => audit.MasterFiles.Product.All(p2 => p2.ProductCode != p.ProductCode)) ) .ToList(); // merge invoices audit.SourceDocuments.SalesInvoices.Invoice = audit .SourceDocuments .SalesInvoices .Invoice .Concat( subaudit.SourceDocuments.SalesInvoices .Invoice .Where(p => audit.SourceDocuments.SalesInvoices.Invoice.All(p2 => p2.InvoiceNo != p.InvoiceNo)) ) .ToList(); // merge accounts if (audit.MasterFiles.GeneralLedgerAccounts != null) { audit.MasterFiles.GeneralLedgerAccounts.Account = audit .MasterFiles ?.GeneralLedgerAccounts ?.Account .Concat( subaudit.MasterFiles?.GeneralLedgerAccounts .Account .Where(p => audit.MasterFiles.GeneralLedgerAccounts.Account.All(p2 => p2.AccountID != p.AccountID)) ) .ToList() ?? new List <Account>(); } } return(audit); }
public HttpResponseMessage Index() { using (var Context = new DatabaseContext()) { XDocument Doc = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/SAFT.xml")); XNamespace ns = Doc.Root.GetDefaultNamespace(); AuditFile AuditFile = new AuditFile(); #region Header XElement HeaderElement = Doc.Root.Element(ns + "Header"); AuditFile.CompanyID = int.Parse(HeaderElement.Element(ns + "CompanyID").Value); AuditFile.FiscalYear = int.Parse(HeaderElement.Element(ns + "FiscalYear").Value); AuditFile.Header = new Header { AuditFileVersion = HeaderElement.Element(ns + "AuditFileVersion").Value, CompanyID = int.Parse(HeaderElement.Element(ns + "CompanyID").Value), TaxRegistrationNumber = int.Parse(HeaderElement.Element(ns + "TaxRegistrationNumber").Value), TaxAccountingBasis = HeaderElement.Element(ns + "TaxAccountingBasis").Value, CompanyName = HeaderElement.Element(ns + "CompanyName").Value, FiscalYear = int.Parse(HeaderElement.Element(ns + "FiscalYear").Value), StartDate = DateTime.Parse(HeaderElement.Element(ns + "StartDate").Value), EndDate = DateTime.Parse(HeaderElement.Element(ns + "EndDate").Value), CurrencyCode = HeaderElement.Element(ns + "CurrencyCode").Value, DateCreated = DateTime.Parse(HeaderElement.Element(ns + "DateCreated").Value), TaxEntity = HeaderElement.Element(ns + "TaxEntity").Value, ProductCompanyTaxID = int.Parse(HeaderElement.Element(ns + "ProductCompanyTaxID").Value), SoftwareCertificateNumber = HeaderElement.Element(ns + "SoftwareCertificateNumber").Value, ProductID = HeaderElement.Element(ns + "ProductID").Value, ProductVersion = HeaderElement.Element(ns + "ProductVersion").Value, }; XElement CompanyAddressElement = HeaderElement.Element(ns + "CompanyAddress"); AuditFile.Header.CompanyAddress = new CompanyAddress { StreetName = CompanyAddressElement.Element(ns + "StreetName").Value, AddressDetail = CompanyAddressElement.Element(ns + "AddressDetail").Value, City = CompanyAddressElement.Element(ns + "City").Value, Country = CompanyAddressElement.Element(ns + "Country").Value, PostalCode = CompanyAddressElement.Element(ns + "PostalCode").Value, Region = CompanyAddressElement.Element(ns + "Region").Value, }; if (Context.AuditFile.Any(e => e.Header.CompanyID == AuditFile.Header.CompanyID && e.Header.FiscalYear == AuditFile.Header.FiscalYear)) { return(Request.CreateResponse(HttpStatusCode.OK, "Audit file already exists.")); } #endregion #region SourceDocuments XElement SourceDocumentsElement = Doc.Root.Element(ns + "SourceDocuments"); AuditFile.SourceDocuments = new SourceDocuments { SalesInvoices = new SalesInvoices(), }; XElement SalesInvoicesElement = SourceDocumentsElement.Element(ns + "SalesInvoices"); AuditFile.SourceDocuments.SalesInvoices = new SalesInvoices { NumberOfEntries = int.Parse(SalesInvoicesElement.Element(ns + "NumberOfEntries").Value), TotalDebit = float.Parse(SalesInvoicesElement.Element(ns + "TotalDebit").Value), TotalCredit = float.Parse(SalesInvoicesElement.Element(ns + "TotalCredit").Value), Invoices = new List <Invoice>(), }; IEnumerable <XElement> InvoicesElements = SalesInvoicesElement.Elements(ns + "Invoice"); foreach (var InvoiceElement in InvoicesElements) { Invoice Invoice = new Invoice { InvoiceNo = InvoiceElement.Element(ns + "InvoiceNo").Value, ATCUD = InvoiceElement.Element(ns + "ATCUD").Value, Hash = InvoiceElement.Element(ns + "Hash").Value, HashControl = int.Parse(InvoiceElement.Element(ns + "HashControl").Value), Period = InvoiceElement.Element(ns + "Period").Value, InvoiceDate = DateTime.Parse(InvoiceElement.Element(ns + "InvoiceDate").Value), InvoiceType = InvoiceElement.Element(ns + "InvoiceType").Value, SourceID = InvoiceElement.Element(ns + "SourceID").Value, SystemEntryDate = DateTime.Parse(InvoiceElement.Element(ns + "SystemEntryDate").Value), CustomerID = InvoiceElement.Element(ns + "CustomerID").Value, MovementStartTime = DateTime.Parse(InvoiceElement.Element(ns + "MovementStartTime").Value), Lines = new List <InvoiceLine>(), }; XElement DocumentStatusElement = InvoiceElement.Element(ns + "DocumentStatus"); Invoice.DocumentStatus = new DocumentStatus { InvoiceStatus = DocumentStatusElement.Element(ns + "InvoiceStatus").Value, InvoiceStatusDate = DateTime.Parse(DocumentStatusElement.Element(ns + "InvoiceStatusDate").Value), SourceID = DocumentStatusElement.Element(ns + "SourceID").Value, SourceBilling = DocumentStatusElement.Element(ns + "SourceBilling").Value, }; XElement SpecialRegimesElement = InvoiceElement.Element(ns + "SpecialRegimes"); Invoice.SpecialRegimes = new SpecialRegimes { SelfBillingIndicator = int.Parse(SpecialRegimesElement.Element(ns + "SelfBillingIndicator").Value), CashVATSchemeIndicator = int.Parse(SpecialRegimesElement.Element(ns + "CashVATSchemeIndicator").Value), ThirdPartiesBillingIndicator = int.Parse(SpecialRegimesElement.Element(ns + "ThirdPartiesBillingIndicator").Value), }; XElement ShipToElement = InvoiceElement.Element(ns + "ShipTo"); Invoice.ShipTo = new ShipTo { DeliveryDate = DateTime.Parse(ShipToElement.Element(ns + "DeliveryDate").Value), }; XElement ShipToAddressElement = ShipToElement.Element(ns + "Address"); Invoice.ShipTo.Address = new Address { AddressDetail = ShipToAddressElement.Element(ns + "AddressDetail").Value, City = ShipToAddressElement.Element(ns + "City").Value, PostalCode = ShipToAddressElement.Element(ns + "PostalCode").Value, Country = ShipToAddressElement.Element(ns + "Country").Value, }; XElement ShipFromElement = InvoiceElement.Element(ns + "ShipFrom"); Invoice.ShipFrom = new ShipFrom { DeliveryDate = DateTime.Parse(ShipFromElement.Element(ns + "DeliveryDate").Value), }; XElement ShipFromAddressElement = ShipFromElement.Element(ns + "Address"); Invoice.ShipFrom.Address = new Address { AddressDetail = ShipFromAddressElement.Element(ns + "AddressDetail").Value, City = ShipFromAddressElement.Element(ns + "City").Value, PostalCode = ShipFromAddressElement.Element(ns + "PostalCode").Value, Country = ShipFromAddressElement.Element(ns + "Country").Value, }; XElement DocumentTotalsElement = InvoiceElement.Element(ns + "DocumentTotals"); Invoice.DocumentTotals = new DocumentTotals { GrossTotal = float.Parse(DocumentTotalsElement.Element(ns + "GrossTotal").Value), NetTotal = float.Parse(DocumentTotalsElement.Element(ns + "NetTotal").Value), TaxPayable = float.Parse(DocumentTotalsElement.Element(ns + "TaxPayable").Value), }; XElement WithholdingTaxElement = InvoiceElement.Element(ns + "WithholdingTax"); Invoice.WithholdingTax = new WithholdingTax { WithholdingTaxAmount = float.Parse(WithholdingTaxElement.Element(ns + "WithholdingTaxAmount").Value), }; IEnumerable <XElement> LineElements = InvoiceElement.Elements(ns + "Line"); foreach (var LineElement in LineElements) { InvoiceLine Line = new InvoiceLine { LineNumber = int.Parse(LineElement.Element(ns + "LineNumber").Value), ProductCode = LineElement.Element(ns + "ProductCode").Value, ProductDescription = LineElement.Element(ns + "ProductDescription").Value, Quantity = int.Parse(LineElement.Element(ns + "Quantity").Value), UnitOfMeasure = LineElement.Element(ns + "UnitOfMeasure").Value, UnitPrice = float.Parse(LineElement.Element(ns + "UnitPrice").Value), TaxPointDate = DateTime.Parse(LineElement.Element(ns + "TaxPointDate").Value), Description = LineElement.Element(ns + "Description").Value, CreditAmount = float.Parse(LineElement.Element(ns + "CreditAmount").Value), SettlementAmount = float.Parse(LineElement.Element(ns + "SettlementAmount").Value), }; XElement TaxElement = LineElement.Element(ns + "Tax"); Line.Tax = new Tax { TaxCode = TaxElement.Element(ns + "TaxCode").Value, TaxCountryRegion = TaxElement.Element(ns + "TaxCountryRegion").Value, TaxPercentage = float.Parse(TaxElement.Element(ns + "TaxPercentage").Value), TaxType = TaxElement.Element(ns + "TaxType").Value, }; Invoice.Lines.Add(Line); } AuditFile.SourceDocuments.SalesInvoices.Invoices.Add(Invoice); } #endregion #region MasterFiles XElement MasterFilesElement = Doc.Root.Element(ns + "MasterFiles"); AuditFile.MasterFiles = new MasterFiles { Customers = new List <Customer>(), GeneralLedgerAccounts = new GeneralLedgerAccounts(), }; XElement GeneralLedgerAccountsElement = MasterFilesElement.Element(ns + "GeneralLedgerAccounts"); AuditFile.MasterFiles.GeneralLedgerAccounts = new GeneralLedgerAccounts { Accounts = new List <Account>(), }; IEnumerable <XElement> AccountElements = GeneralLedgerAccountsElement.Elements(ns + "Account"); foreach (var AccountElement in AccountElements) { Account Account = new Account { AccountID = long.Parse(AccountElement.Element(ns + "AccountID").Value), AccountDescription = AccountElement.Element(ns + "AccountDescription").Value, OpeningDebitBalance = float.Parse(AccountElement.Element(ns + "OpeningDebitBalance").Value), OpeningCreditBalance = float.Parse(AccountElement.Element(ns + "OpeningCreditBalance").Value), ClosingDebitBalance = float.Parse(AccountElement.Element(ns + "ClosingDebitBalance").Value), ClosingCreditBalance = float.Parse(AccountElement.Element(ns + "ClosingCreditBalance").Value), GroupingCategory = AccountElement.Element(ns + "GroupingCategory").Value, }; AuditFile.MasterFiles.GeneralLedgerAccounts.Accounts.Add(Account); } IEnumerable <XElement> CustomerElements = MasterFilesElement.Elements(ns + "Customer"); foreach (var CustomerElement in CustomerElements) { Customer Customer = new Customer { AccountID = CustomerElement.Element(ns + "AccountID").Value, CompanyName = CustomerElement.Element(ns + "CompanyName").Value, CustomerID = CustomerElement.Element(ns + "CustomerID").Value, CustomerTaxID = CustomerElement.Element(ns + "CustomerTaxID").Value, SelfBillingIndicator = CustomerElement.Element(ns + "SelfBillingIndicator").Value, }; XElement BillingAddressElement = CustomerElement.Element(ns + "BillingAddress"); Customer.BillingAddress = new Address { AddressDetail = BillingAddressElement.Element(ns + "AddressDetail").Value, City = BillingAddressElement.Element(ns + "City").Value, Country = BillingAddressElement.Element(ns + "Country").Value, PostalCode = BillingAddressElement.Element(ns + "PostalCode").Value, }; XElement ShipToAddressElement = CustomerElement.Element(ns + "ShipToAddress"); Customer.ShipToAddress = new Address { AddressDetail = ShipToAddressElement.Element(ns + "AddressDetail").Value, City = ShipToAddressElement.Element(ns + "City").Value, Country = ShipToAddressElement.Element(ns + "Country").Value, PostalCode = ShipToAddressElement.Element(ns + "PostalCode").Value, }; AuditFile.MasterFiles.Customers.Add(Customer); } #endregion Context.AuditFile.Add(AuditFile); Context.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.Created, "Created audit file.")); } }