/// <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); }
/// <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()); }