Beispiel #1
0
        private EDEEnviarDocumentoResponse ProcesarFAE <T>(T objFAE, EDECommonRequest objEDECommonRequest, string IdDocumento)
        {
            objEDERespuesta = new EDEEnviarDocumentoResponse();
            //Generacion de XML
            var respuestaGenerarXMLRequest = RequestApiService <T, EDEDocumentoResponse>(objEDECommonRequest.NombreMetodoProcesoAPI, objFAE);

            if (respuestaGenerarXMLRequest.Exito)
            {
                //Guardar XML
                WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(),
                                     objEDECommonRequest.NombreCarpetaSinFirmar, $"{IdDocumento}.xml",
                                     respuestaGenerarXMLRequest.TramaXmlSinFirma);

                //Firmar el documento XML
                var firmadoRequest = new EDEFirmadoRequest
                {
                    TramaXmlSinFirma    = respuestaGenerarXMLRequest.TramaXmlSinFirma,
                    CertificadoDigital  = objEDECommonRequest.URLCertificado,
                    PasswordCertificado = objEDECommonRequest.ClaveDigital,
                    UnSoloNodoExtension = objEDECommonRequest.TipoDocumento == "RC" ? true : false
                };
                var respuestaFirmarXML = RequestApiService <EDEFirmadoRequest, EDEFirmadoResponse>("api/Firmar", firmadoRequest);
                if (respuestaFirmarXML.Exito)
                {
                    objEDERespuesta.Pila = respuestaFirmarXML.ResumenFirma;

                    //Guardar XML Firmado
                    WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(),
                                         objEDECommonRequest.NombreCarpetaFirmado, $"{IdDocumento}.xml",
                                         respuestaFirmarXML.TramaXmlFirmado);

                    //Enviar XML firmado a SUNAT
                    EDEEnviarDocumentoRequest enviarDocumentoRequest;
                    //Uso de discriminante para comunicacion de baja
                    if (objEDECommonRequest.TipoDocumento != "CB")
                    {
                        enviarDocumentoRequest = new EDEEnviarDocumentoRequest
                        {
                            Ruc             = objEDECommonRequest.RUC,
                            UsuarioSol      = objEDECommonRequest.UsuarioSOL,
                            ClaveSol        = objEDECommonRequest.ClaveSOL,
                            EndPointUrl     = ConfigurationManager.AppSettings["EndPointBoletaSUNAT"].ToString(),
                            IdDocumento     = IdDocumento,
                            TipoDocumento   = objEDECommonRequest.TipoDocumento,
                            TramaXmlFirmado = respuestaFirmarXML.TramaXmlFirmado
                        };
                    }
                    else
                    {
                        enviarDocumentoRequest = new EDEEnviarDocumentoRequest
                        {
                            Ruc             = objEDECommonRequest.RUC,
                            UsuarioSol      = objEDECommonRequest.UsuarioSOL,
                            ClaveSol        = objEDECommonRequest.ClaveSOL,
                            EndPointUrl     = ConfigurationManager.AppSettings["EndPointBoletaSUNAT"].ToString(),
                            IdDocumento     = IdDocumento,
                            TramaXmlFirmado = respuestaFirmarXML.TramaXmlFirmado
                        };
                    }
                    EDEEnviarDocumentoResponse respuestaEnvio = RequestApiService <EDEEnviarDocumentoRequest, EDEEnviarDocumentoResponse>(objEDECommonRequest.NombreMetodoEnvioAPI, enviarDocumentoRequest);
                    if (respuestaEnvio.Exito)
                    {
                        //Guardar CDR
                        WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(),
                                             objEDECommonRequest.NombreCarpeaCDR, $"{IdDocumento}.zip",
                                             respuestaEnvio.TramaZipCdr != null ? respuestaEnvio.TramaZipCdr : string.Empty);
                        objEDERespuesta.TramaZipCdr      = respuestaEnvio.TramaZipCdr;
                        objEDERespuesta.MensajeRespuesta = respuestaEnvio.MensajeRespuesta != null ? respuestaEnvio.MensajeRespuesta : string.Format("Correcto {0}", respuestaEnvio.NombreArchivo);
                        objEDERespuesta.Exito            = true;
                    }
                    else
                    {
                        objEDERespuesta.Exito           = false;
                        objEDERespuesta.CodigoRespuesta = respuestaEnvio.CodigoRespuesta;
                        objEDERespuesta.MensajeError    = respuestaEnvio.MensajeError;
                    }
                }
                else
                {
                    objEDERespuesta.Exito        = false;
                    objEDERespuesta.MensajeError = respuestaFirmarXML.MensajeError;
                }
            }
            else
            {
                objEDERespuesta.Exito        = false;
                objEDERespuesta.MensajeError = respuestaGenerarXMLRequest.MensajeError;
            }
            return(objEDERespuesta);
        }
Beispiel #2
0
 private void ActualizarRespuesta(EDEEnviarDocumentoResponse objEDERespuesta)
 {
     //objEDetalleVentaRespuesta = new EDetalleVenta();
     //lstEDetalleVentaRespuesta = new List<EDetalleVenta>();
 }