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 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); }
private CEN_DataVenta LlenarDataVenta(int codPreventa, int codCliente, int codVendedor, string fechPag, int tipoVenta, int tipoMoneda, double recargo, double IGV, double total, int sucursal, int tipoDocumentoVenta, int codPuntoEntrega) { CEN_DataVenta data = new CEN_DataVenta(); CLNConsultas consultas = new CLNConsultas(); try { data.codPreventa = codPreventa; data.codCliente = codCliente; data.codVendedor = codVendedor; data.fechaTransaccion = DateTime.Now; data.fechaPago = consultas.ConvertFechaStringToDate(fechPag); data.importeRecargo = recargo; data.importeTotal = total; data.IGV = IGV; data.sucursal = sucursal; data.tipoVenta = tipoVenta; data.tipoMoneda = tipoMoneda; data.proceso = CENConstante.g_const_1; data.tipoDocumentoVenta = tipoDocumentoVenta; data.codPuntoEntrega = codPuntoEntrega; data.estado = CENConstante.g_const_1; //Verificar registro pendiente de pago /* * TimeSpan timePago = data.fechaPago - DateTime.Now; * int diaPago = timePago.Days; * if (diaPago > CENConstante.g_const_0) * { */ if (data.tipoVenta == CENConstante.g_const_1) // contado { //Pendiente de pago //data.estado = CENConstante.g_const_1; //Registro de clase de pendiente de cobro data.cuentaCobro.fechaCobro = data.fechaPago; data.cuentaCobro.fechaTransaccion = DateTime.Now; data.cuentaCobro.horaTransaccion = DateTime.Now.ToString(CENConstante.g_const_horaFech); data.cuentaCobro.responsable = CENConstante.g_const_vacio; data.cuentaCobro.estado = CENConstante.g_const_1; data.cuentaCobro.importe = data.importeTotal; //Validamos que si se debe registrar cuenta cobro data.est_reg_cue_cob = CENConstante.g_const_1; } //Tipo de pago if (data.tipoVenta == CENConstante.g_const_1) // contado { //TOTAL data.tipoPago = CENConstante.g_const_1; } else //credito { //PARCIAL data.tipoPago = CENConstante.g_const_2; //Generar prestamo data.prestamo.fechaTransaccion = DateTime.Now; data.prestamo.importeTotal = total; data.prestamo.interesTotal = CENConstante.g_const_0; data.prestamo.nroCuotas = CENConstante.g_const_1; data.prestamo.estado = CENConstante.g_const_1; TimeSpan ts = data.fechaPago - DateTime.Now; data.prestamo.plazo = ts.Days; //Generar cronograma CENCronograma cronograma = new CENCronograma(); cronograma.fechaPago = data.fechaPago; cronograma.importe = total; cronograma.nroCuota = CENConstante.g_const_1; cronograma.estado = CENConstante.g_const_1; data.listCuotas.Add(cronograma); } return(data); } catch (Exception ex) { throw ex; } }
public CENRespVenta registrarVenta(CEN_DataVenta data) { //DESCRIPCION: REGISTRAR VENTA CENRespVenta respuesta = new CENRespVenta(); SqlDataReader dr; //data reader CADConexion conector = new CADConexion(); // Conexión CAD_Consulta consulta = new CAD_Consulta(); try { string listaCuotas = ObjectToXMLGeneric <List <CENCronograma> >(data.listCuotas); string prestamo = ObjectToXMLGeneric <CENPrestamo>(data.prestamo); string cuentaCobro = ObjectToXMLGeneric <CEN_CuentaCobro>(data.cuentaCobro); using (Connection = new SqlConnection(conector.CxSQL())) { conector.AbrirConexion(Connection); using (SqlCommand Command = new SqlCommand("pa_registrar_venta", Connection)) { Command.CommandType = CommandType.StoredProcedure; //Command.Parameters.Add("@p_serie", SqlDbType.VarChar,CENConstante.g_const_20).Value = data.serie; //Command.Parameters.Add("@p_nroDocumento", SqlDbType.Int).Value = data.nroDocumento; Command.Parameters.Add("@p_tipoPago", SqlDbType.SmallInt).Value = data.tipoPago; Command.Parameters.Add("@p_codPreventa", SqlDbType.Int).Value = data.codPreventa; Command.Parameters.Add("@p_codCliente", SqlDbType.Int).Value = data.codCliente; Command.Parameters.Add("@p_codVendedor", SqlDbType.Int).Value = data.codVendedor; Command.Parameters.Add("@p_fechaTransaccion", SqlDbType.Date).Value = data.fechaTransaccion; Command.Parameters.Add("@p_tipoMoneda", SqlDbType.SmallInt).Value = data.tipoMoneda; Command.Parameters.Add("@p_tipoVenta", SqlDbType.SmallInt).Value = data.tipoVenta; Command.Parameters.Add("@p_tipoCambio", SqlDbType.Money).Value = data.tipoCambio; Command.Parameters.Add("@p_estado", SqlDbType.SmallInt).Value = data.estado; Command.Parameters.Add("@p_importeTotal", SqlDbType.Money).Value = data.importeTotal; Command.Parameters.Add("@p_importeRecargo", SqlDbType.Money).Value = data.importeRecargo; Command.Parameters.Add("@p_usuario", SqlDbType.VarChar, CENConstante.g_const_20).Value = data.usuario; Command.Parameters.Add("@p_ip", SqlDbType.VarChar, CENConstante.g_const_20).Value = data.ip; Command.Parameters.Add("@p_mac", SqlDbType.VarChar, CENConstante.g_const_20).Value = data.mac; Command.Parameters.Add("@p_prestamo", SqlDbType.Xml).Value = prestamo; Command.Parameters.Add("@p_listaCronograma", SqlDbType.Xml).Value = listaCuotas; Command.Parameters.Add("@p_proceso", SqlDbType.SmallInt).Value = data.proceso; Command.Parameters.Add("@p_codSucursal", SqlDbType.Int).Value = data.sucursal; Command.Parameters.Add("@p_fechaPago", SqlDbType.Date).Value = data.fechaPago; Command.Parameters.Add("@p_prFechaTrans", SqlDbType.DateTime).Value = data.prestamo.fechaTransaccion; Command.Parameters.Add("@p_cuentaCobro", SqlDbType.Xml).Value = cuentaCobro; Command.Parameters.Add("@p_IGV", SqlDbType.Money).Value = data.IGV; Command.Parameters.Add("@p_tipoDocVenta", SqlDbType.TinyInt).Value = data.tipoDocumentoVenta; Command.Parameters.Add("@p_codPuntoEntrega", SqlDbType.Int).Value = data.codPuntoEntrega; Command.Parameters.Add("@p_est_reg_cue_cob", SqlDbType.Int).Value = data.est_reg_cue_cob; Command.CommandTimeout = CENConstante.g_const_0; dr = Command.ExecuteReader(); if (dr.HasRows) { CENPreventaFiltroPA preventa = new CENPreventaFiltroPA(); while (dr.Read()) { if (dr["flag"] != DBNull.Value) { respuesta.flag = Convert.ToInt32(dr["flag"].ToString().Trim()); } if (dr["venta"] != DBNull.Value) { respuesta.venta = Convert.ToInt32(dr["venta"].ToString()); } if (dr["msje"] != DBNull.Value) { respuesta.msje = dr["msje"].ToString().Trim(); } if (dr["serie"] != DBNull.Value) { respuesta.serie = dr["serie"].ToString().Trim(); } if (dr["nroDocumento"] != DBNull.Value) { respuesta.nroDocumento = Convert.ToInt32(dr["nroDocumento"].ToString().Trim()); } } } dr.Close(); } } return(respuesta); } catch (Exception ex) { throw ex; } finally { conector.CerrarConexion(Connection); } }