private async void CrearXmlBajas()
    {
        try
        {
            vFechaXml  = "RA-" + Convert.ToString(DtpFechaEnvio.Value.Year);
            vFechaXml += Modfunc.Derecha("0" + Convert.ToString(DtpFechaEnvio.Value.Month), 2);
            vFechaXml += Modfunc.Derecha("0" + Convert.ToString(DtpFechaEnvio.Value.Day), 2);
            vFechaXml += "-002";

            OpenInvoicePeru.Comun.Dto.Modelos.ComunicacionBaja ComunicacionBaja = new Comun.Dto.Modelos.ComunicacionBaja();

            ComunicacionBaja.IdDocumento     = vFechaXml;
            ComunicacionBaja.FechaEmision    = DtpFechaEnvio.Value.ToString(FormatoFecha);
            ComunicacionBaja.FechaReferencia = DtpFecha.Value.ToString(FormatoFecha);
            ComunicacionBaja.Emisor          = CrearEmisor(DtEmpresa);
            ComunicacionBaja.Bajas           = new List <OpenInvoicePeru.Comun.Dto.Modelos.DocumentoBaja>();

            for (int i3 = 0; i3 <= DtDocumentos.Rows.Count - 1; i3++)
            {
                OpenInvoicePeru.Comun.Dto.Modelos.DocumentoBaja DocumentoBajasItem = new OpenInvoicePeru.Comun.Dto.Modelos.DocumentoBaja();
                DocumentoBajasItem.Id            = i3 + 1;
                DocumentoBajasItem.Correlativo   = Convert.ToString(DtDocumentos.Rows[i3]["NumeroDocumento"]);
                DocumentoBajasItem.TipoDocumento = Convert.ToString(DtDocumentos.Rows[i3]["TipoDocumento"]);
                DocumentoBajasItem.Serie         = Convert.ToString(DtDocumentos.Rows[i3]["SerieDocumento"]);
                DocumentoBajasItem.MotivoBaja    = "Anulación por otro tipo de documento";

                ComunicacionBaja.Bajas.Add(DocumentoBajasItem);
            }

            string _metodoApi = "api/GenerarComunicacionBaja";
            var    response   = await _client.PostAsJsonAsync(_metodoApi, ComunicacionBaja);

            var respuesta = await response.Content.ReadAsAsync <DocumentoResponse>();

            if (!respuesta.Exito)
            {
                throw new ApplicationException(respuesta.MensajeError);
            }

            String vRutaXml = Convert.ToString(DtEmpresa.Rows[0]["CarpetaEnviosXml"]);
            RutaArchivo = ComunicacionBaja.IdDocumento;
            //     RutaArchivo = Convert.ToString(DtEmpresa.Rows[0]["EmpresaRuc"]) + "-" + ComunicacionBaja.IdDocumento;
            RutaArchivo = Path.Combine(vRutaXml, $"{RutaArchivo}.xml");

            File.WriteAllBytes(RutaArchivo, Convert.FromBase64String(respuesta.TramaXmlSinFirma));
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
예제 #2
0
        private void BntGenerar_Click(object sender, EventArgs e)
        {
            Int32 vTotales = new Int32();

            SQL  = " SELECT Establecimiento_id,Fechadocumento,b.*,Letras=[dbo].fn_NumeroEnLetra(TotalImporteVenta,'01') ";
            SQL += " FROM dbo.FE_DocumentosElectronicosCab a ";
            SQL += "  INNER join FE_DocumentosElectronicosDet b ON a.empresacodigo = b.empresacodigo ";
            SQL += " AND a.documentoselectronicos_id = b.documentoselectronicos_id ";
            SQL += " WHERE a.Empresacodigo='" + Ctr_AyuEmpresa.Codigo + "' AND fechadocumento = '" + DtpFecha.Text + "'";

            if (vTipoDoc == "RC" || vTipoDoc == "CC")
            {
                SQL  = " SELECT Item=IdentificadorEnvio+1,Establecimiento_id,Fechadocumento,b.*,Letras=[dbo].fn_NumeroEnLetra(TotalImporteVenta,'01') ";
                SQL += " FROM dbo.FE_ResumenDiarioDocumentosCab a ";
                SQL += "  INNER join FE_ResumenDiarioDocumentosDet b ON a.empresacodigo = b.empresacodigo ";
                SQL += " AND a.Resumendiario_id = b.Resumendiario_id ";
                SQL += " WHERE a.Empresacodigo='" + Ctr_AyuEmpresa.Codigo + "' AND fechadocumento = '" + DtpFecha.Text + "'";

                if (vTipoDoc == "CC")
                {
                    SQL += " AND tipodocumento<>'03' ";
                }
                else
                {
                    SQL += " AND tipodocumento='03' ";
                }
            }
            else
            if (vTipoDoc == "RA")
            {
                SQL  = " SELECT Item=IdentificadorEnvio+1,Establecimiento_id,Fechadocumento,b.* ";
                SQL += " FROM dbo.FE_ComunicacionBajaCab  a ";
                SQL += "  INNER join FE_ComunicacionBajaDet b ON a.empresacodigo = b.empresacodigo ";
                SQL += " AND a.ComunicacionBaja_id = b.ComunicacionBaja_id ";
                SQL += " WHERE a.Empresacodigo='" + Ctr_AyuEmpresa.Codigo + "' AND fechadocumento = '" + DtpFecha.Text + "'";
            }
            else
            {
                SQL += "AND TipoDocumento='" + vTipoDoc + "'";
            }

            SQL += " AND a.EstadoAnulado=0 AND b.EstadoAnulado=0 ";

            DtDocumentos = Modfunc.ConsultarTabla(SQL, VGCnxSqlE);

            DgvConsulta.DataSource = DtDocumentos;

            txtNroReg.Text = Convert.ToString(DtDocumentos.Rows.Count);
            if (DtDocumentos.Rows.Count > 0)
            {
                txtVtas.Text = Convert.ToString(Modfunc.Totalventas(DtDocumentos));
            }

            txtResult.Text = "";
            //     txtResult.Text = "Proceso de generacion de factura/boletas XML "+"\n";
            try
            {
                if (DtDocumentos.Rows.Count > 0)
                {
                    // Creacion de directorio empresa
                    vRutaXml        = Convert.ToString(DtEmpresa.Rows[0]["CarpetaEnviosXml"]);
                    vRutaArchivoXML = Ctr_AyuEmpresa.Codigo;
                    vRutaArchivoXML = Modfunc.CreacionDirectorio(vRutaXml, vRutaArchivoXML);

                    // Creacion de directorio de facturas electronicas

                    // Creacion de directorio año
                    vRutaXml        = vRutaArchivoXML;
                    vRutaArchivoXML = Convert.ToString(DtpFecha.Value.Year);
                    vRutaArchivoXML = Modfunc.CreacionDirectorio(vRutaXml, vRutaArchivoXML);

                    // Creacion de directorio mes

                    vRutaXml        = vRutaArchivoXML;
                    vRutaArchivoXML = Modfunc.DesMes(Modfunc.Derecha("0" + Convert.ToString(DtpFecha.Value.Month), 2));
                    vRutaArchivoXML = Modfunc.CreacionDirectorio(vRutaXml, vRutaArchivoXML);

                    // Creacion de directorio XML

                    vRutaXml        = vRutaArchivoXML;
                    vRutaCdr        = vRutaXml;
                    vRutaArchivoXML = "XML";
                    vRutaXml        = Modfunc.CreacionDirectorio(vRutaXml, vRutaArchivoXML);

                    vRutaArchivoXML = "CDR";
                    vRutaCdr        = Modfunc.CreacionDirectorio(vRutaCdr, vRutaArchivoXML);
                }
                switch (vTipoDoc)
                {
                case "RA":
                    CrearXmlBajas();
                    break;

                case "RC":
                    CrearXmlResumen2();
                    break;

                case "CC":
                    CrearXmlResumen2();
                    break;

                default:
                    for (int ii = 0; ii <= DtDocumentos.Rows.Count - 1; ii++)
                    {
                        CrearXmlFact(ii);
                    }
                    break;
                }
                BntSunat.Visible   = true;
                BntGenerar.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }