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); }
public bool ValidarVenta(string trama) { RequestApiBoleta dataVenta = new RequestApiBoleta(); try { dataVenta = JsonConvert.DeserializeObject <RequestApiBoleta>( trama); return(true); } catch (Exception ex) { return(false); } }
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; } }
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); }
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); }