Пример #1
0
        /// <summary>
        /// Obtiene los registros de asientos tipo PD de retenciones generadas.
        /// </summary>
        /// <param name="dtAsientos">Tabla en la que se volcará la información de los asientos a generar.</param>
        /// <param name="fechaInicio">Fecha de inicio de la consulta.</param>
        /// <param name="fechaFin">Fecha de fin de la consulta.</param>
        public void ObtenerAsientosPDRetenciones(Procesos.TD.Asiento.LISTA_ASIENTODataTable dtAsientos, DateTime fechaInicio, DateTime fechaFin)
        {
            try
            {
                SqlConnection cn  = GetConnection();
                SqlCommand    cmd = new SqlCommand("dbo.FMPR_OBT_RETENCIONES_X_MONEDA", cn);
                cmd.CommandType    = CommandType.StoredProcedure;
                cmd.CommandTimeout = 1000;

                SqlParameter prmFechaInicio = cmd.Parameters.Add("@fechaInicio", SqlDbType.Date);
                prmFechaInicio.Value = fechaInicio;

                SqlParameter prmFechaFin = cmd.Parameters.Add("@fechaFin", SqlDbType.Date);
                prmFechaFin.Value = fechaFin;

                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                foreach (DataRow dr in dt.Rows)
                {
                    dtAsientos.ImportRow(dr);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        /// <summary>
        /// Obtiene los asientos generados de un tipo de asiento determinado y completa las información de los UUID y estados registrados.
        /// </summary>
        /// <param name="dtAsientos">Tabla que contiene la data de los asientos a generar.</param>
        /// <param name="tipoAsiento">Indica el tipo de asiento que se desea verificar su generación previa.</param>
        /// <param name="fecha">Indica la fecha de consulta de los asientos.</param>
        public void ListarControlAsiento(Procesos.TD.Asiento.LISTA_ASIENTODataTable dtAsientos, string tipoAsiento, DateTime fecha)
        {
            SqlConnection cn  = GetConnection();
            SqlCommand    cmd = new SqlCommand("dbo.FMPR_LIS_CONTROL_ASIENTO", cn);

            cmd.CommandType    = CommandType.StoredProcedure;
            cmd.CommandTimeout = 1000;

            SqlParameter prmTipoAsiento = cmd.Parameters.Add("@tipoAsiento", SqlDbType.VarChar);

            prmTipoAsiento.Value = tipoAsiento;

            SqlParameter prmFechaInicio = cmd.Parameters.Add("@fechaInicio", SqlDbType.Date);

            prmFechaInicio.Value = fecha;

            SqlParameter prmFechaFin = cmd.Parameters.Add("@fechaFin", SqlDbType.Date);

            prmFechaFin.Value = fecha;

            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable      dt = new DataTable();

            da.Fill(dt);

            foreach (DataRow dr in dt.Rows)
            {
                DataRow[] drAsientos = dtAsientos.Select("MONEDA = '" + dr["MONEDA"] + "' AND FECHA_PROCESO = '#" + fecha.ToString("dd/MM/yyyy") + "#' AND FONDO = '" + dr["FONDO"] + "'");
                drAsientos[0]["UUID"]              = dr["UUID"];
                drAsientos[0]["ESTADO"]            = dr["ESTADO"];
                drAsientos[0]["DESCRIPCION_ERROR"] = dr["DESCRIPCION_ERROR"];
            }
        }
Пример #3
0
        /// <summary>
        /// Obtiene los registros de asientos tipo VT y PD de comisiones anticipadas.
        /// </summary>
        /// <param name="dtAsientos">Tabla en la que se volcará la información de los asientos a generar.</param>
        /// <param name="fechaInicio">Fecha de inicio de la consulta.</param>
        /// <param name="fechaFin">Fecha de fin de la consulta.</param>
        public void ObtenerAsientosVTComisiones(Procesos.TD.Asiento.LISTA_ASIENTODataTable dtAsientos, DateTime fechaInicio, DateTime fechaFin, bool sapActivo)
        {
            try
            {
                SqlConnection cn  = GetConnection();
                SqlCommand    cmd = new SqlCommand("dbo.FMPR_OBT_COMISIONES_ANTICIPADAS", cn);
                cmd.CommandType    = CommandType.StoredProcedure;
                cmd.CommandTimeout = 1000;

                SqlParameter prmFechaInicio = cmd.Parameters.Add("@fechaInicio", SqlDbType.Date);
                prmFechaInicio.Value = fechaInicio;

                SqlParameter prmFechaFin = cmd.Parameters.Add("@fechaFin", SqlDbType.Date);
                prmFechaFin.Value = fechaFin;

                SqlParameter prmSapActivo = cmd.Parameters.Add("@SAP_ACTIVO", SqlDbType.VarChar);
                prmSapActivo.Value = sapActivo ? "S" : "N";

                //SqlParameter prmBoletaTexto = cmd.Parameters.Add("@boletaTexto", SqlDbType.VarChar);
                //prmBoletaTexto.Value = boletaTexto;

                //SqlParameter prmBoletaNumero = cmd.Parameters.Add("@boletaNumero", SqlDbType.VarChar);
                //prmBoletaNumero.Value = boletaNumero;

                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                foreach (DataRow dr in dt.Rows)
                {
                    dtAsientos.ImportRow(dr);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        /// <summary>
        /// Obtiene los registros de asientos tipo VT de ingresos a partir de un archivo Excel.
        /// </summary>
        /// <param name="dtAsientos">Tabla en la que se volcará la información de los asientos a generar.</param>
        /// <param name="archivo">Ruta y nombre del archivo Excel que contiene la información del reporte de ingresos para obtener los asientos.</param>
        public void ObtenerAsientosVTIngresos(Procesos.TD.Asiento.LISTA_ASIENTODataTable dtAsientos, string archivo)
        {
            Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es-PE");
            CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture;

            try
            {
                Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
                ExcelApplication app   = new ExcelApplication();
                ExcelWorkBook    wb    = app.OpenWorkBook(archivo, ExcelMode.Full);
                ExcelWorkSheet   sheet = wb.GetSheet(1);

                String    fechaAsiento = sheet.GetString("G3"); //convertir a fecha
                DataTable dt           = sheet.LeerTabla("B", "I", 5, sheet.ObtenerUltimaFilaTabla("B", 6), true);

                /*String factura = sheet.GetString("G2");
                 * string[] partesFactura = ObtenerPartesFactura(factura);
                 * string numeros = partesFactura[0];
                 * string letras = partesFactura[1];
                 */
                ParametrosDA parametrosDA       = new ParametrosDA();
                DataTable    dtParametroRUC     = parametrosDA.ObtenerValoresParametros(ConstantesING.TABLA_TIPO_DOCUMENTO, ConstantesING.TIPO_DOCUMENTO_RUC);
                String       tipoDocumentoSunat = dtParametroRUC.Rows[0]["CAMPO1"].ToString();

                //int correlativoFactura = Convert.ToInt32(numeros);

                wb.Close();
                app.Close();
                Hashtable ht = new Hashtable();
                foreach (DataRow dr in dt.Rows)
                {
                    string fondo = dr["Fondo"].ToString().Trim();
                    if (!ht.ContainsKey(fondo))
                    {
                        Asiento.LISTA_ASIENTORow row = dtAsientos.NewLISTA_ASIENTORow();

                        //string numeroFactura = letras + correlativoFactura.ToString().PadLeft(numeros.Length, '0');
                        //correlativoFactura++;
                        object total = dt.Compute("SUM(Ingresos)", "Fondo = '" + fondo + "'");
                        //object totalImpuesto = dt.Compute("SUM(IGV)", "Fondo = '" + fondo + "'");
                        object totalPN = dt.Compute("SUM(Ingresos)", "Fondo = '" + fondo + "' and TipoPersona = 'PN'");
                        //object impuestoPN = dt.Compute("SUM(IGV)", "Fondo = '" + fondo + "' and TipoPersona = 'PN'");
                        object totalPJ = dt.Compute("SUM(Ingresos)", "Fondo = '" + fondo + "' and TipoPersona = 'PJ'");
                        //object impuestoPJ = dt.Compute("SUM(IGV)", "Fondo = '" + fondo + "' and TipoPersona = 'PJ'");
                        //object subtotal = Convert.ToDecimal(total) - Convert.ToDecimal(totalImpuesto);
                        object igv = dt.Compute("SUM(IGV)", "Fondo = '" + fondo + "'");
                        row.TIPO_ASIENTO  = "VT_ING";
                        row.UUID          = "";
                        row.ESTADO        = "";
                        row.FONDO         = fondo;
                        row.FECHA_PROCESO = DateTime.ParseExact(fechaAsiento, "dd/MM/yyyy", CultureInfo.InvariantCulture).Date;
                        row.ID_OPERACION  = "";
                        row.MONEDA        = dr["Moneda"].ToString() == "SOL" ? "PEN" : "USD";
                        row.TOTAL         = total == null || total == DBNull.Value ? 0 : Decimal.Round(Convert.ToDecimal(total), 2);
                        row.MONTO1        = total == null || total == DBNull.Value ? 0 : Decimal.Round(Convert.ToDecimal(total), 2);


                        //row.MONTO2 = totalImpuesto == null || totalImpuesto == DBNull.Value ? 0 : Convert.ToDecimal(totalImpuesto);
                        //row.MONTO3 = totalPN == null || totalPN == DBNull.Value ? 0 : Convert.ToDecimal(totalPN);
                        //row.MONTO4 = totalPJ == null || totalPJ == DBNull.Value ? 0 : Convert.ToDecimal(totalPJ);
                        row.MONTO2 = totalPN == null || totalPN == DBNull.Value ? 0 : Decimal.Round(Convert.ToDecimal(totalPN), 2);
                        row.MONTO3 = totalPJ == null || totalPJ == DBNull.Value ? 0 : row.MONTO1 - row.MONTO2;
                        row.MONTO4 = 0;
                        row.MONTO5 = 0;
                        //ABRIR EN CASO SE JUNTEN LOS MONTO 3 Y MONTO4
                        row.REFERENCIA  = "";// numeroFactura;
                        row.REFERENCIA1 = tipoDocumentoSunat;
                        //row.MONTO3 = subtotal == null || subtotal == DBNull.Value ? 0 : Convert.ToDecimal(subtotal);

                        row.TEXTO1 = row.FECHA_PROCESO.ToString("MM");
                        row.TEXTO2 = row.FECHA_PROCESO.ToString("yyyy");

                        DataTable dtFondo = parametrosDA.ObtenerValoresParametros(ConstantesING.FONDO, fondo);
                        row.TIPO_DOCUMENTO = ConstantesING.TIPO_DOCUMENTO_RUC;
                        row.CODIGO_CLIENTE = dtFondo.Rows[0]["CAMPO2"].ToString();
                        row.RAZON_SOCIAL   = dtFondo.Rows[0]["CAMPO3"].ToString();

                        row.DIRECCION       = ConfigurationSettings.AppSettings[ConstantesING.DIRECCION_FONDOS];
                        row.DISTRITO        = ConfigurationSettings.AppSettings[ConstantesING.DISTRITO_FONDOS];
                        row.PROVINCIA       = ConfigurationSettings.AppSettings[ConstantesING.PROVINCIA_FONDOS];
                        row.DEPARTAMENTO    = ConfigurationSettings.AppSettings[ConstantesING.DEPARTAMENTO_FONDOS];
                        row.CODIGO_PAIS     = ConstantesING.CODIGO_PERU;
                        row.CORREO          = ConfigurationSettings.AppSettings[ConstantesING.CORREO_FONDOS];
                        row.ID_PAIS         = ConfigurationSettings.AppSettings[ConstantesING.ID_PAIS_FONDOS];
                        row.ID_DEPARTAMENTO = ConfigurationSettings.AppSettings[ConstantesING.ID_DEPARTAMENTO_FONDOS];
                        row.ID_CIUDAD       = ConfigurationSettings.AppSettings[ConstantesING.ID_CIUDAD_FONDOS];
                        row.ID_DISTRITO     = ConfigurationSettings.AppSettings[ConstantesING.ID_DISTRITO_FONDOS];
                        row.UBIGEO          = ConfigurationSettings.AppSettings[ConstantesING.UBIGEO_FONDOS];

                        row.IGVF   = Decimal.ToDouble(Decimal.Round(Convert.ToDecimal(igv), 2));
                        row.TOTALF = Decimal.ToDouble(row.TOTAL);
                        row.SUBF   = row.TOTALF - row.IGVF;

                        dtAsientos.AddLISTA_ASIENTORow(row);
                        ht.Add(fondo, fondo);
                    }
                }

                da.Server   = INGFondos.Constants.Conexiones.ServidorSAP;
                da.Database = INGFondos.Constants.Conexiones.BaseDeDatosSAP;
                da.ListarControlAsiento(dtAsientos, "VT_ING", DateTime.ParseExact(fechaAsiento, "dd/MM/yyyy", CultureInfo.InvariantCulture).Date);
                da.Server   = INGFondos.Constants.Conexiones.ServidorOperaciones;
                da.Database = INGFondos.Constants.Conexiones.BaseDeDatosOperaciones;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = originalCulture;
            }
        }
Пример #5
0
        //OT7999 FIN

        /// <summary>
        /// Obtiene los registros de asientos tipo PD de retenciones generadas.
        /// </summary>
        /// <param name="dtAsientos">Tabla en la que se volcará la información de los asientos a generar.</param>
        /// <param name="fechaInicio">Fecha de inicio de la consulta.</param>
        /// <param name="fechaFin">Fecha de fin de la consulta.</param>
        public void ObtenerAsientosPDRetenciones(Procesos.TD.Asiento.LISTA_ASIENTODataTable dtAsientos, DateTime fechaInicio, DateTime fechaFin)
        {
            da.ObtenerAsientosPDRetenciones(dtAsientos, fechaInicio, fechaFin);
        }