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);
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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);
        }