Example #1
0
        /// <summary>
        /// Método para obtener una nueva Relación de Caja
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public RelacionCaja ObtenerRelacionCaja(TokenDto token)
        {
            RelacionCaja relacionCaja = new RelacionCaja();

            relacionCaja.CodigoTienda = token.CodeStore;
            List <GrupoRelacionCaja> gruposIncluidosRelacionCaja = new List <GrupoRelacionCaja>();

            relacionCaja.GruposRelacionCaja = gruposIncluidosRelacionCaja.ToArray();
            var grupos    = new Dictionary <String, GrupoRelacionCaja>();
            var secciones = new Dictionary <String, SeccionRelacionCaja>();
            List <GrupoRelacionCaja>   gruposRelacionCaja    = new List <GrupoRelacionCaja>();
            List <SeccionRelacionCaja> seccionesRelacionCaja = new List <SeccionRelacionCaja>();
            decimal iva        = this.ObtenerImpuestoTienda(token.CodeStore);
            var     parametros = new Dictionary <string, object>();

            parametros.Add("@CodigoTienda", token.CodeStore);
            parametros.Add("@CodigoCaja", token.CodeBox);
            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerRelacionDeCaja]", parametros))
            {
                // Llenado de Desglose
                String   encabezadoGrupo   = item.GetValue(0).ToString();
                String   encabezadoSeccion = item.GetValue(1).ToString();
                Desglose desglose          = new Desglose();
                desglose.Descripcion = item.GetValue(2).ToString();
                desglose.TotalConIVA = Convert.ToDecimal(item.GetValue(3));
                // Llenado de Sección
                SeccionRelacionCaja seccionRelacionCajaActual;
                if (secciones.ContainsKey(encabezadoGrupo + encabezadoSeccion))
                {
                    seccionRelacionCajaActual = secciones[encabezadoGrupo + encabezadoSeccion];
                    List <Desglose> desgloses = seccionRelacionCajaActual.DesgloseRelacionCaja.ToList();
                    desgloses.Add(desglose);
                    seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                }
                else
                {
                    seccionRelacionCajaActual            = new SeccionRelacionCaja();
                    seccionRelacionCajaActual.Encabezado = encabezadoSeccion;
                    List <Desglose> desgloses = new List <Desglose>();
                    desgloses.Add(desglose);
                    seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                    secciones.Add(encabezadoGrupo + encabezadoSeccion, seccionRelacionCajaActual);
                    // Llenado de Grupo
                    GrupoRelacionCaja grupoRelacionCajaActual;
                    if (grupos.ContainsKey(encabezadoGrupo))
                    {
                        grupoRelacionCajaActual = grupos[encabezadoGrupo];
                        List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = grupoRelacionCajaActual.SeccionesRelacionCaja.ToList();
                        seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                        grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                    }
                    else
                    {
                        grupoRelacionCajaActual            = new GrupoRelacionCaja();
                        grupoRelacionCajaActual.Encabezado = encabezadoGrupo;
                        List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = new List <SeccionRelacionCaja>();
                        seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                        grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                        grupos.Add(encabezadoGrupo, grupoRelacionCajaActual);
                        // Agregar Grupo hacia Relacion Caja
                        List <GrupoRelacionCaja> gruposActuales = relacionCaja.GruposRelacionCaja.ToList();
                        gruposActuales.Add(grupoRelacionCajaActual);
                        relacionCaja.GruposRelacionCaja = gruposActuales.ToArray();
                    }
                }
            }
            // Asignar Totales
            foreach (var grupo in relacionCaja.GruposRelacionCaja)
            {
                foreach (var seccion in grupo.SeccionesRelacionCaja)
                {
                    foreach (var desglose in seccion.DesgloseRelacionCaja)
                    {
                        //if (seccion.Encabezado.Equals("OTROS INGRESOS"))
                        //{
                        //    seccion.TotalConIVA = 0.00M;
                        //    seccion.TotalSinIVA = 0.00M;
                        //    seccion.IVA = 0.00M;
                        //}
                        //else
                        //{
                        seccion.TotalConIVA = seccion.TotalConIVA + desglose.TotalConIVA;
                        seccion.TotalSinIVA = (seccion.TotalConIVA / (1 + iva));
                        seccion.IVA         = (seccion.TotalConIVA - seccion.TotalSinIVA);
                        //}
                    }
                    grupo.TotalConIVA = grupo.TotalConIVA + seccion.TotalConIVA;
                    grupo.TotalSinIVA = (grupo.TotalConIVA / (1 + iva));
                    grupo.IVA         = (grupo.TotalConIVA - grupo.TotalSinIVA);
                }
                relacionCaja.TotalConIVA = relacionCaja.TotalConIVA + grupo.TotalConIVA;
                relacionCaja.TotalSinIVA = (relacionCaja.TotalConIVA / (1 + iva));
                relacionCaja.IVA         = (relacionCaja.TotalConIVA - relacionCaja.TotalSinIVA);
            }

            // Asignar los Depositos
            List <DepositoAsociado> depositosAsociados = new List <DepositoAsociado>();
            var parametrosDepositos = new Dictionary <string, object>();

            parametrosDepositos.Add("@CodigoTienda", token.CodeStore);
            parametrosDepositos.Add("@CodigoCaja", token.CodeBox);
            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerDepositosRelacionDeCaja]", parametrosDepositos))
            {
                DepositoAsociado depositoAsociado = new DepositoAsociado();
                depositoAsociado.TotalConIVA = Convert.ToDecimal(item.GetValue(0));;
                ConfigGeneralesCajaTiendaFormaPago configGeneralesCajaTiendaFormaPago = new ConfigGeneralesCajaTiendaFormaPago();
                configGeneralesCajaTiendaFormaPago.IdentificadorFormaPago = item.GetValue(1).ToString();
                configGeneralesCajaTiendaFormaPago.CodigoFormaPago        = item.GetValue(2).ToString();
                configGeneralesCajaTiendaFormaPago.DescripcionFormaPago   = item.GetValue(3).ToString();
                depositoAsociado.InformacionAsociadaFormasPago            = configGeneralesCajaTiendaFormaPago;
                depositosAsociados.Add(depositoAsociado);
            }
            relacionCaja.DepositosAsociados = depositosAsociados.ToArray();
            return(relacionCaja);
        }
Example #2
0
        /// <summary>
        /// Reporte de Relacion de Caja
        /// </summary>
        /// <param name="codeStore">Código del empleado</param>
        /// <param name="fechaInicial">Fecha inicial</param>
        /// <param name="fechaFinal">Fecha final</param>
        /// <param name="numeroPagina">Números por página</param>
        /// <param name="registrosPorPagina">Registros por página</param>
        /// <returns>Respuesta de la operación</returns>
        public RelacionCaja[] ReporteRelacionCaja(int codeStore, string fechaInicial, string fechaFinal, int numeroPagina, int registrosPorPagina)
        {
            ConfigGeneralesCajaTiendaFormaPago InformacionFormaPago = new ConfigGeneralesCajaTiendaFormaPago();

            List <RelacionCaja>        relacionesCaja = new List <RelacionCaja>();
            List <RelacionCajaRespose> relacionCajas  = new List <RelacionCajaRespose>();

            // Objeto y lista de DepositosAsociados
            DepositoAsociado        depositoAso  = new DepositoAsociado();
            List <DepositoAsociado> depositosAso = new List <DepositoAsociado>();

            var parameters = new Dictionary <string, object>();

            parameters.Add("@FechaInicial", fechaInicial);
            parameters.Add("@FechaFinal", fechaFinal);
            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@NumeroPagina", numeroPagina);
            parameters.Add("@RegistrosPorPagina", registrosPorPagina);
            foreach (var r in data.GetDataReader("[dbo].[sp_vanti_server_ReporteRelacionesCaja]", parameters))
            {
                // Obtengo datos de relacion de caja
                RelacionCaja relacionCaja = new RelacionCaja();
                relacionCaja.TotalRegistros = Convert.ToInt32(r.GetValue(0));
                relacionCaja.IdRelacionCaja = Convert.ToInt32(r.GetValue(1));
                relacionCaja.CodigoTienda   = Convert.ToInt32(r.GetValue(2));
                relacionCaja.TotalConIVA    = Convert.ToDecimal(r.GetValue(3));
                relacionCaja.TotalSinIVA    = Convert.ToDecimal(r.GetValue(4));
                relacionCaja.IVA            = Convert.ToDecimal(r.GetValue(5));
                relacionCaja.Fecha          = Convert.ToString(r.GetValue(6));

                var parametersRelacion = new Dictionary <string, object>();
                parametersRelacion.Add("@CodigoRelacion", Convert.ToInt32(r.GetValue(1)));
                foreach (var a in data.GetDataReader("dbo.sp_vanti_server_ReporteRelacionCajaDeposito", parametersRelacion))
                {
                    //Obtenemos depositos asociados al id de relacion de caja.
                    DepositoAsociado depositoAsociado = new DepositoAsociado();
                    depositoAsociado.TotalConIVA = Convert.ToDecimal(a.GetValue(0));

                    //Se debe crear el tipo de dato infomacionAsociadaFormaPago
                    ConfigGeneralesCajaTiendaFormaPago tiendaFormaPago = new ConfigGeneralesCajaTiendaFormaPago();
                    tiendaFormaPago.CodigoFormaPago                = Convert.ToString(a.GetValue(1));
                    tiendaFormaPago.IdentificadorFormaPago         = Convert.ToString(a.GetValue(1));
                    tiendaFormaPago.DescripcionFormaPago           = Convert.ToString(a.GetValue(2));
                    depositoAsociado.InformacionAsociadaFormasPago = tiendaFormaPago;
                    depositosAso.Add(depositoAsociado);
                }
                relacionCaja.DepositosAsociados = depositosAso.ToArray();

                List <GrupoRelacionCaja> gruposIncluidosRelacionCaja = new List <GrupoRelacionCaja>();
                relacionCaja.GruposRelacionCaja = gruposIncluidosRelacionCaja.ToArray();
                var grupos    = new Dictionary <String, GrupoRelacionCaja>();
                var secciones = new Dictionary <String, SeccionRelacionCaja>();
                List <GrupoRelacionCaja>   gruposRelacionCaja    = new List <GrupoRelacionCaja>();
                List <SeccionRelacionCaja> seccionesRelacionCaja = new List <SeccionRelacionCaja>();

                var parametros = new Dictionary <string, object>();
                parametros.Add("@IdRelacionCaja", relacionCaja.IdRelacionCaja);
                foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerReporteRelacionDeCaja]", parametros))
                {
                    // Informacion Grupo
                    String encabezadoGrupo = item.GetValue(0).ToString();
                    // Información Sección
                    String encabezadoSeccion = item.GetValue(1).ToString();

                    // Información Desglose
                    Desglose desglose = new Desglose();
                    desglose.Descripcion = item.GetValue(2).ToString();
                    desglose.TotalConIVA = Convert.ToDecimal(item.GetValue(3));

                    // Llenado de Sección
                    SeccionRelacionCaja seccionRelacionCajaActual;
                    if (secciones.ContainsKey(encabezadoGrupo + encabezadoSeccion))
                    {
                        seccionRelacionCajaActual = secciones[encabezadoGrupo + encabezadoSeccion];
                        List <Desglose> desgloses = seccionRelacionCajaActual.DesgloseRelacionCaja.ToList();
                        desgloses.Add(desglose);
                        seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                    }
                    else
                    {
                        seccionRelacionCajaActual             = new SeccionRelacionCaja();
                        seccionRelacionCajaActual.Encabezado  = encabezadoSeccion;
                        seccionRelacionCajaActual.IdSeccion   = Convert.ToInt32(item.GetValue(4));
                        seccionRelacionCajaActual.TotalConIVA = Convert.ToDecimal(item.GetValue(5));
                        seccionRelacionCajaActual.TotalSinIVA = Convert.ToDecimal(item.GetValue(6));
                        seccionRelacionCajaActual.IVA         = Convert.ToInt32(item.GetValue(7));
                        List <Desglose> desgloses = new List <Desglose>();
                        desgloses.Add(desglose);
                        seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                        secciones.Add(encabezadoGrupo + encabezadoSeccion, seccionRelacionCajaActual);
                        // Llenado de Grupo
                        GrupoRelacionCaja grupoRelacionCajaActual;
                        if (grupos.ContainsKey(encabezadoGrupo))
                        {
                            grupoRelacionCajaActual = grupos[encabezadoGrupo];
                            List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = grupoRelacionCajaActual.SeccionesRelacionCaja.ToList();
                            seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                            grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                        }
                        else
                        {
                            grupoRelacionCajaActual             = new GrupoRelacionCaja();
                            grupoRelacionCajaActual.Encabezado  = encabezadoGrupo;
                            grupoRelacionCajaActual.IdGrupo     = Convert.ToInt32(item.GetValue(8));
                            grupoRelacionCajaActual.TotalConIVA = Convert.ToDecimal(item.GetValue(9));
                            grupoRelacionCajaActual.TotalSinIVA = Convert.ToDecimal(item.GetValue(10));
                            grupoRelacionCajaActual.IVA         = Convert.ToDecimal(item.GetValue(11));
                            List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = new List <SeccionRelacionCaja>();
                            seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                            grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                            grupos.Add(encabezadoGrupo, grupoRelacionCajaActual);
                            // Agregar Grupo hacia Relacion Caja
                            List <GrupoRelacionCaja> gruposActuales = relacionCaja.GruposRelacionCaja.ToList();
                            gruposActuales.Add(grupoRelacionCajaActual);
                            relacionCaja.GruposRelacionCaja = gruposActuales.ToArray();
                        }
                    }
                }
                relacionesCaja.Add(relacionCaja);
            }
            return(relacionesCaja.ToArray());
        }