private string GetSignedInvoiceFileName(ElectronicInvoice invoice) { var transmitterId = invoice.Header.TransmissionData.TransmitterId; var fileIdentifier = $"{transmitterId.CountryCode}{transmitterId.TaxCode}_{invoice.Header.TransmissionData.SequentialNumber}".ToUpper(); return($"{fileIdentifier}.xml"); }
public async Task <SdiResponse> SendAsync(ElectronicInvoice invoice) { var invoiceXmlDoc = XmlManipulator.Serialize(invoice); var signedInvoiceXmlDoc = XmlSigner.Sign(invoiceXmlDoc, SignatureCertificate); var signedInvoiceXml = signedInvoiceXmlDoc.OuterXml; var signedInvoiceBytes = Encoding.UTF8.GetBytes(signedInvoiceXml); var messageBody = new ReceiveFile { Content = signedInvoiceBytes, FileName = GetSignedInvoiceFileName(invoice) }; var response = await SoapClient.SendAsync <ReceiveFile, ReceiveFileResponse>(messageBody, operation : "http://www.fatturapa.it/SdIRiceviFile/RiceviFile"); if (response.ErrorSpecified) { return(new SdiResponse(GetSdiError(response.Error))); } return(new SdiResponse(new SdiFileInfo( receivedUtc: response.ReceivedOn, sdiIdentifier: response.SdiIdentification ))); }
private string Serialize(ElectronicInvoice invoice) { var xmlNamespaces = new XmlSerializerNamespaces(); xmlNamespaces.Add("p", ElectronicInvoice.Namespace); var xml = XmlManipulator.Serialize(invoice, xmlNamespaces).OuterXml; return($@"{XmlFileHeader}{xml}"); }
private ElectronicInvoice GetModel() { var model = new ElectronicInvoice(); model.SupplierName = txtSupplierName.Text.Trim(); model.SupplierBrandNo = txtBrandNo.Text; model.SupplierBrandName = txtBandName.Text; model.City = txtCity.Text; model.Province = txtProvice.Text; model.ActPay = Convert.ToDecimal(txtTotal.Text); model.BillType = dllBillType.SelectedItem.Text; model.Person = dllPerson.SelectedItem.Text; model.Use = dllUse.SelectedItem.Text; model.Company = dllCompany.SelectedItem.Text; model.SupplieSimpeName = hfSimpName.Value; Session["ElectronicInvoice"] = model; return model; }
public async Task <SendInvoiceResult> SendInvoiceAsync(ElectronicInvoice invoice) { var url = $"{UniwixBaseUrl}/Invoices/Upload"; var invoiceFile = new ElectronicInvoiceFile(invoice); var content = new MultipartFormDataContent { { new ByteArrayContent(invoiceFile.Data), "fattura", invoiceFile.FileName } }; try { var result = await PostAsync <PostInvoiceResponse>(url, content); return(new SendInvoiceResult(result.FileId, result.Message)); } catch (UniwixException e) when(e.Code == (int)UniwixErrorCodes.ValidationError) { throw new UniwixValidationException(e.Code, e.Reason, invoiceFile.Content); } }
public ElectronicInvoiceFile(ElectronicInvoice invoice) { Data = Encoding.UTF8.GetBytes(Serialize(invoice)); FileName = FileUtils.SanitizePath($"{invoice.Header.TransmissionData.SequentialNumber}.xml"); }
private List <ElectronicInvoice> Data(string sql) { List <ElectronicInvoice> list = new List <ElectronicInvoice>(); using (SqlConnection conn = DBHelp.getConn()) { conn.Open(); SqlCommand objCommand = new SqlCommand(sql, conn); using (SqlDataReader objReader = objCommand.ExecuteReader()) { while (objReader.Read()) { var model = new ElectronicInvoice(); model.PONo = objReader["PONo"].ToString(); model.ProNo = objReader["ProNo"].ToString(); model.busType = objReader["busType"].ToString(); model.ActPay = Convert.ToDecimal(objReader["SumActPay"]); object ojb; ojb = objReader["SupplierName"]; if (ojb != null && ojb != DBNull.Value) { model.SupplierName = ojb.ToString(); } ojb = objReader["SupplierBrandName"]; if (ojb != null && ojb != DBNull.Value) { model.SupplierBrandName = ojb.ToString(); } ojb = objReader["SupplierBrandNo"]; if (ojb != null && ojb != DBNull.Value) { model.SupplierBrandNo = ojb.ToString(); } ojb = objReader["Province"]; if (ojb != null && ojb != DBNull.Value) { model.Province = ojb.ToString(); } ojb = objReader["City"]; if (ojb != null && ojb != DBNull.Value) { model.City = ojb.ToString(); } ojb = objReader["SupplieSimpeName"]; if (ojb != null && ojb != DBNull.Value) { model.SupplieSimpeName = ojb.ToString(); } ojb = objReader["LastFPNo"]; if (ojb != null && ojb != DBNull.Value) { model.PFNo = ojb.ToString(); } ojb = objReader["Peculiarity"]; if (ojb != null && ojb != DBNull.Value) { model.Peculiarity = ojb.ToString(); } list.Add(model); } } } return(list); }