コード例 #1
0
        private RequestApiBoleta ObtenerDataComprobante(CEN_DataVenta requestData, CENRespVenta respuesta, string tipoOperacion)
        {
            RequestApiBoleta data           = new RequestApiBoleta();
            CENApiNC         obj            = new CENApiNC();
            CADNotaCredito   cadNotaCredito = new CADNotaCredito();

            try
            {
                obj = cadNotaCredito.obtenerDatosSunat(respuesta.venta, CENConstante.g_const_0, respuesta.venta);
                data.tipoOperacion   = tipoOperacion;
                data.tipoDoc         = obj.tipoDoc;
                data.serie           = respuesta.serie;
                data.correlativo     = respuesta.nroDocumento.ToString();
                data.fechaEmision    = obj.fechaEmision;
                data.tipoMoneda      = obj.tipoMoneda;
                data.mtoOperGravadas = obj.mtoOperGravadas;
                data.mtoIGV          = obj.mtoIGV;
                data.totalImpuestos  = obj.totalImpuestos;
                data.mtoImpVenta     = obj.mtoImpVenta;
                data.ublVersion      = obj.ublVersion;

                data.valorVenta = data.mtoImpVenta / 1.18;
                data.valorVenta = Math.Round(data.valorVenta, CENConstante.g_const_2); //returns 1.99
                //Cliente

                data.client = obj.client;

                /*
                 * data.client.tipoDoc = "1";
                 * data.client.numDoc = "77388057";
                 * data.client.address.direccion = "DIRECCION";
                 */
                //Empresa
                data.company = obj.company;

                /*
                 * data.company.address.direccion = "DIRECCION EMPRESA";
                 * data.company.ruc = "10773880579";
                 * data.company.razonSocial = "RAZON SOCIAL EMPRESA";
                 */

                //DATA DE DETALLE
                data.details = obj.details;
                //DATA DE LEGENDS
                data.legends = new List <CENLegends>();

                CLNProcesosGenerales pg     = new CLNProcesosGenerales();
                CENLegends           legend = new CENLegends();
                legend.value = pg.convertirALetras(obj.mtoImpVenta.ToString());
                legend.code  = CENConstante.g_const_1000.ToString();
                data.legends.Add(legend);
            }
            catch (Exception ex)
            {
            }
            return(data);
        }
コード例 #2
0
        public bool ValidarVenta(string trama)
        {
            RequestApiBoleta dataVenta = new RequestApiBoleta();

            try
            {
                dataVenta = JsonConvert.DeserializeObject <RequestApiBoleta>(
                    trama);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
コード例 #3
0
        public void EnviarComproanteFallidos()
        {
            List <CENComprobSunat> listaComp   = new List <CENComprobSunat>();
            RequestApiBoleta       dataVenta   = new RequestApiBoleta();
            CLNConexionServicio    clnServicio = new CLNConexionServicio();
            CLNConsultas           consultas   = new CLNConsultas();
            CADcomprobSunat        cADcomprob  = new CADcomprobSunat();
            ResponseApi            respVenta   = new ResponseApi();
            string tramaSUNAT  = CENConstante.g_const_vacio;
            int    estadoSUNAT = CENConstante.g_const_0;
            bool   estado      = false;

            try
            {
                listaComp = ListarComprobantesFallidos();
                foreach (CENComprobSunat comprobante in listaComp)
                {
                    if (comprobante.codModulo == CENConstante.g_const_1 && comprobante.tipDocSunat == CENConstante.g_const_1)
                    {
                        //VENTA
                        estado = ValidarVenta(comprobante.tramEntrada);
                        if (estado)
                        {
                            dataVenta = JsonConvert.DeserializeObject <RequestApiBoleta>(
                                comprobante.tramEntrada);

                            respVenta  = clnServicio.RegistrarBoleta(dataVenta);
                            tramaSUNAT = JsonConvert.SerializeObject(respVenta);
                            if (respVenta.sunatResponse.success)
                            {
                                //ACTUALIZAR COMPROBANTE DE LA SUNAT - CORRECTO
                                estadoSUNAT = CENConstante.g_const_1;
                            }
                            else
                            {
                                //ACTUALIZAR COMPROBANTE DE LA SUNAT - INCORRECTO
                                estadoSUNAT = CENConstante.g_const_2;
                            }
                            cADcomprob.ActualizarComprobSunat(comprobante.ntraComprob, tramaSUNAT, estadoSUNAT);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        public ResponseApi RegistrarBoleta(RequestApiBoleta data)
        {
            //DESCRIPCIÓN: Conexión y registro de registro de boleta
            CENErrorWebSer         ErrorWebSer = new CENErrorWebSer();
            ResponseApi            resp        = new ResponseApi();
            ResponseApiBoletaError resp_error  = new ResponseApiBoletaError();
            List <CENEmpresa>      listresp    = new List <CENEmpresa>();

            try
            {
                // Definir el URL de la aplicación Web API
                string URLWebAPI = ConfigurationManager.ConnectionStrings["urlServiceFactura"].ConnectionString.ToString();

                // Crear un objeto HttpClient para acceder a la Web API
                HttpClient client = new HttpClient();
                client.BaseAddress = new Uri(URLWebAPI);


                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + ConfigurationManager.ConnectionStrings["TokenFacturacion"].ConnectionString.ToString());

                // Especificar que estamos aceptando datos JSON
                client.DefaultRequestHeaders.Accept.Add(
                    new System.Net.Http.Headers.
                    MediaTypeWithQualityHeaderValue(CENConstante.g_const_apliJSON));

                // Serializar los datos a formato JSON

                string DataJSON = JsonConvert.SerializeObject(data);

                // Obtener un tipo HttpContent para pasarlo en la petición
                StringContent Content = new StringContent(DataJSON,
                                                          System.Text.Encoding.UTF8, CENConstante.g_const_apliJSON);

                // Realizar la llamada al recurso Web API y obtener la respuesta
                //HttpResponseMessage response = new HttpResponseMessage();
                HttpResponseMessage response = client.PostAsync(
                    ConfigurationManager.ConnectionStrings["FactBolFact"].ConnectionString.ToString(), Content).Result;
                //"/api/v1/invoice/send", Content).Result;

                // Verificar si la respuesta fue exitosa
                if (response.IsSuccessStatusCode)
                {
                    // Deserializar el resultado obtenido

                    //RootObject rootObj = JsonConvert.DeserializeObject<RootObject>(response.Content.ReadAsStringAsync().Result);
                    resp = JsonConvert.DeserializeObject <ResponseApi>(
                        response.Content.ReadAsStringAsync().Result);
                }
                else
                {
                    resp_error = JsonConvert.DeserializeObject <ResponseApiBoletaError>(
                        response.Content.ReadAsStringAsync().Result);

                    /*
                     * gbcon = consentimiento.Obtener_desc_gbcon(CEN_Constante.g_const_prefijo, CEN_Constante.g_const_1020);
                     * resp.RptaRegRespConsen.FlagVerificacion = false;
                     * resp.RptaRegRespConsen.cod_resp = CEN_Constante.g_const_0;
                     * resp.RptaRegRespConsen.DescripcionResp = CEN_Constante.g_const_err_int;
                     * resp.ErrorWebSer = consulta.LlenarErrorWebSer(CEN_Constante.g_const_0, gbcon.gbconcorr, gbcon.gbcondesc);
                     */
                }
            }
            catch (Exception ex)
            {
                /*
                 * gbcon = consentimiento.Obtener_desc_gbcon(CEN_Constante.g_const_prefijo, CEN_Constante.g_const_1020);
                 * resp.RptaRegRespConsen.FlagVerificacion = false;
                 * resp.RptaRegRespConsen.cod_resp = CEN_Constante.g_const_0;
                 * resp.RptaRegRespConsen.DescripcionResp = CEN_Constante.g_const_err_int;
                 * resp.ErrorWebSer = consulta.LlenarErrorWebSer(CEN_Constante.g_const_0, gbcon.gbconcorr, ex.Message);
                 * return resp;
                 */
            }
            return(resp);
        }
コード例 #5
0
        public CENRespVenta RegistrarVenta(int codPreventa, int codCliente, int codVendedor, string fechPag, int tipoVenta,
                                           int tipoMoneda, double recargo, double IGV, double total, int sucursal, int tipoDocumentoVenta, int codPuntoEntrega)
        {
            CENRespVenta        respuesta   = new CENRespVenta();
            CADVenta            cad_venta   = new CADVenta();
            CEN_DataVenta       requestData = new CEN_DataVenta();
            RequestApiBoleta    dataApi     = new RequestApiBoleta();
            CLNConexionServicio conServicio = new CLNConexionServicio();
            ResponseApi         responseApi = new ResponseApi();
            int    estadoSUNAT = CENConstante.g_const_0;
            string tramaSUNAT  = CENConstante.g_const_vacio;

            try
            {
                requestData = LlenarDataVenta(codPreventa, codCliente, codVendedor, fechPag, tipoVenta, tipoMoneda,
                                              recargo, IGV, total, sucursal, tipoDocumentoVenta, codPuntoEntrega);
                respuesta = cad_venta.registrarVenta(requestData);
                if (respuesta.venta > CENConstante.g_const_0)
                {
                    //Registro de comprobante sunat
                    CLNComprobanteSunat comprobante = new CLNComprobanteSunat();
                    CENComprobSunat     dataComprob = new CENComprobSunat();
                    int    codigoComprob            = CENConstante.g_const_0;
                    string trama = CENConstante.g_const_vacio;
                    dataComprob.codModulo      = CENConstante.g_const_1;
                    dataComprob.codTransaccion = respuesta.venta;
                    dataComprob.tipDocSunat    = CENConstante.g_const_1;
                    dataComprob.tipDocVenta    = requestData.tipoVenta;
                    dataComprob.estado         = CENConstante.g_const_1;
                    dataComprob.usuario        = requestData.usuario;
                    dataComprob.ip             = CENConstante.g_const_vacio;
                    dataComprob.mac            = CENConstante.g_const_vacio;



                    //AGREGAR TRAMA PARA COMPROBANTE
                    if (requestData.tipoDocumentoVenta == CENConstante.g_const_1)
                    {
                        //Boleta
                        dataApi = ObtenerDataComprobante(requestData, respuesta, "0101");
                        trama   = JsonConvert.SerializeObject(dataApi);
                    }
                    else if (requestData.tipoDocumentoVenta == CENConstante.g_const_2)
                    {
                        //Factura
                        dataApi = ObtenerDataComprobante(requestData, respuesta, "0101");
                        trama   = JsonConvert.SerializeObject(dataApi);
                    }
                    dataComprob.tramEntrada = trama;
                    codigoComprob           = comprobante.RegistrarComprobSunat(dataComprob);

                    if (codigoComprob > CENConstante.g_const_0)
                    {
                        //ENVIO A LA SUNAT
                        responseApi = conServicio.RegistrarBoleta(dataApi);
                        tramaSUNAT  = JsonConvert.SerializeObject(responseApi);
                        if (responseApi.sunatResponse.success)
                        {
                            //ACTUALIZAR COMPROBANTE DE LA SUNAT
                            estadoSUNAT = CENConstante.g_const_1;
                        }
                        else
                        {
                            //ACTUALIZAR COMPROBANTE DE LA SUNAT
                            estadoSUNAT = CENConstante.g_const_2;
                        }

                        /*
                         * if (requestData.tipoDocumentoVenta == CENConstante.g_const_1)
                         * {
                         *  //Boleta
                         *  responseApi= conServicio.RegistrarBoleta(dataApi);
                         *  tramaSUNAT = JsonConvert.SerializeObject(responseApi);
                         *  if (responseApi.sunatResponse.success)
                         *  {
                         *      //ACTUALIZAR COMPROBANTE DE LA SUNAT
                         *      estadoSUNAT = CENConstante.g_const_1;
                         *  }
                         *  else
                         *  {
                         *      //ACTUALIZAR COMPROBANTE DE LA SUNAT
                         *      estadoSUNAT = CENConstante.g_const_2;
                         *  }
                         *
                         * }
                         * else if (requestData.tipoDocumentoVenta == CENConstante.g_const_2)
                         * {
                         *  //Factura
                         *
                         * }
                         */
                        comprobante.ActualizarComprobSunat(codigoComprob, tramaSUNAT, estadoSUNAT);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(respuesta);
        }