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 void enviarNCSunat(int codVenta, int codNC, int codVentaN, int tipoNC, string usuario, string ip, string mac) { CENApiNC obj = null; CENLegends legends = null; CLNProcesosGenerales pg = new CLNProcesosGenerales(); CADNotaCredito cadNotaCredito = new CADNotaCredito(); CADcomprobSunat cadComprob = new CADcomprobSunat(); CENComprobSunat cenComprob = null; ResponseApi responseApi = new ResponseApi(); int codComprobSunat; string DataJSON; string DataJSONSalida; int flag = CENConstante.g_const_2; try { obj = cadNotaCredito.obtenerDatosSunat(codVenta, codNC, codVentaN); legends = new CENLegends(); legends.code = "1000"; legends.value = pg.convertirALetras(obj.mtoImpVenta.ToString()); obj.legends.Add(legends); DataJSON = JsonConvert.SerializeObject(obj); cenComprob = new CENComprobSunat(); cenComprob.codTransaccion = codNC; cenComprob.codModulo = CENConstante.g_const_1; cenComprob.tipDocSunat = CENConstante.g_const_2; cenComprob.tipDocVenta = tipoNC; cenComprob.tramEntrada = DataJSON; cenComprob.tramSalida = CENConstante.g_const_vacio; cenComprob.estado = CENConstante.g_const_1; cenComprob.usuario = usuario; cenComprob.ip = ip; cenComprob.mac = mac; codComprobSunat = cadComprob.RegistrarComprobSunat(cenComprob); responseApi = enviarTramaNCSunat(DataJSON); DataJSONSalida = JsonConvert.SerializeObject(responseApi); if (responseApi.sunatResponse.success) { flag = CENConstante.g_const_1; } cadComprob.ActualizarComprobSunat(codComprobSunat, DataJSONSalida, flag); } catch (Exception ex) { throw ex; } }
public CENApiNC obtenerDatosSunat(int codVenta, int codNC, int codVentaN) { SqlConnection con = null; SqlCommand cmd = null; SqlDataReader dr = null; CENApiNC objeto = null; List <CENNotaCreditoDatosDetalleVenta> lista = null; CENDetails detalle = null; string unidad = null; string tipAfeIgv = null; double mtoBaseIgv = 0; double porcentajeIgv = 0; double cal_igv = 0; double igv = 0; CADConexion CadCx = new CADConexion(); try { con = new SqlConnection(CadCx.CxSQL()); cmd = new SqlCommand("pa_notacredito_obtener_datos_sunat", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@p_codVenta", SqlDbType.Int).Value = codVenta; cmd.Parameters.Add("@p_codNC", SqlDbType.Int).Value = codNC; con.Open(); dr = cmd.ExecuteReader(); while (dr.Read()) { objeto = new CENApiNC(); objeto.tipDocAfectado = dr["tipDocAfec"].ToString(); objeto.numDocfectado = dr["serieDocAfec"].ToString() + "-" + dr["numeroDocAfec"].ToString(); objeto.codMotivo = dr["codMotivoNC"].ToString(); objeto.desMotivo = dr["desMotivoNC"].ToString(); objeto.serie = dr["serieNC"].ToString(); if (codNC == CENConstante.g_const_0) { objeto.fechaEmision = dr["fechaAfec"].ToString(); objeto.tipoDoc = dr["tipDocAfec"].ToString(); objeto.mtoImpVenta = Convert.ToDouble(dr["totalVentaAfec"]); objeto.mtoIGV = Convert.ToDouble(dr["igvAfec"]); objeto.totalImpuestos = Convert.ToDouble(dr["igvAfec"]); } else { objeto.fechaEmision = dr["fechaEmisionNC"].ToString(); objeto.tipoDoc = dr["tipoDocNC"].ToString(); objeto.mtoImpVenta = Convert.ToDouble(dr["mtoImpVentaNC"]); objeto.mtoIGV = Convert.ToDouble(dr["mtoIGVNC"]); objeto.totalImpuestos = Convert.ToDouble(dr["mtoIGVNC"]); } objeto.correlativo = dr["correlativoNC"].ToString(); objeto.tipoMoneda = dr["tipoMoneda"].ToString(); objeto.client.tipoDoc = dr["tipoDocClient"].ToString(); objeto.client.numDoc = dr["numDocCliente"].ToString(); objeto.client.rznSocial = dr["rznSocialClient"].ToString(); objeto.client.address.direccion = dr["direccionClient"].ToString(); objeto.company.ruc = dr["rucCompany"].ToString(); objeto.company.razonSocial = dr["razonSocialCompany"].ToString(); objeto.company.address.direccion = dr["direccionCompany"].ToString(); objeto.mtoOperGravadas = objeto.mtoImpVenta - objeto.mtoIGV; objeto.ublVersion = dr["ublVersion"].ToString(); unidad = dr["unidad"].ToString(); tipAfeIgv = dr["tipAfeIgv"].ToString(); mtoBaseIgv = Convert.ToDouble(dr["mtoBaseIgv"]); porcentajeIgv = Convert.ToDouble(dr["porcentajeIgv"]); cal_igv = Convert.ToDouble(dr["cal_igv"]); igv = Convert.ToDouble(dr["igv"]); } lista = new List <CENNotaCreditoDatosDetalleVenta>(); lista = obtenerDetalleVenta(codVentaN); foreach (CENNotaCreditoDatosDetalleVenta p in lista) { detalle = new CENDetails(); detalle.codProducto = p.codProducto; detalle.unidad = unidad; detalle.descripcion = p.descProducto; detalle.cantidad = p.cantidadUnidadBase; detalle.mtoBaseIgv = mtoBaseIgv; detalle.porcentajeIgv = porcentajeIgv; if (codNC == CENConstante.g_const_0) { detalle.mtoPrecioUnitario = p.precioVenta; } else { detalle.mtoPrecioUnitario = p.precioVenta * -1; } detalle.mtoValorUnitario = FormatoDecimal((detalle.mtoPrecioUnitario / cal_igv), 3); detalle.mtoValorVenta = FormatoDecimal((detalle.mtoValorUnitario * detalle.cantidad), 2); //detalle.igv = FormatoDecimal((detalle.mtoValorVenta * (detalle.porcentajeIgv / detalle.mtoBaseIgv)),2); detalle.igv = igv; detalle.totalImpuestos = detalle.igv; detalle.tipAfeIgv = tipAfeIgv; detalle.mtoValorUnitario = FormatoDecimal(detalle.mtoValorUnitario, 2); objeto.details.Add(detalle); } } catch (Exception ex) { throw ex; } finally { con.Close(); } return(objeto); }