Пример #1
0
        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");
        }
Пример #2
0
        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}");
        }
Пример #4
0
 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;
 }
Пример #5
0
        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");
 }
Пример #7
0
        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);
        }