Пример #1
0
        public async Task <IHttpActionResult> GetSaldoContable([FromUri] ParametersSaldoContable parms)
        {
            IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());


            //List<ReporteSaldoContablePartialModel> SaldoContable = GetSaldoContableFiltro(parms, user);

            List <ReporteSaldoContablePartialModel> SaldoContable = GetSaldos(parms, user);

            //GetSaldos

            if (SaldoContable != null)
            {
                if (parms.IdCuentaContable != null)
                {
                    SaldoContable = SaldoContable.Where(c => c.codcuentacontable == parms.IdCuentaContable.ToString()).ToList();
                }
                var retornaSaldo = SaldoContable.Select(g =>
                                                        new
                {
                    Empresa                = g.nombreempresa,
                    CuentaContable         = g.codcuentacontable,
                    NombreCuentaContable   = g.nombrecuentacontable,
                    NombreareAreaOperativa = g.nombreareaoperativa,
                    Moneda     = g.codmoneda,
                    FechaCorte = parms.FechaCorte.Value.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                    //SaldoSf = g.saldo,
                    Saldo = g.saldo.ToString("N2")
                });

                return(Ok(retornaSaldo));
            }
            return(NotFound());
        }
Пример #2
0
        //public HttpResponseMessage GetReporteExcelSaldoContable([FromUri]ParametersSaldoContable parms)
        public async Task <HttpResponseMessage> GetReporteExcelSaldoContable([FromUri] ParametersSaldoContable parms)
        {
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.BadRequest);
            IdentityUser        user     = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var userArea    = usuarioAreaService.GetAll(d => d.US_ID_USUARIO == user.Id && d.UA_ESTATUS == 1, null, includes: c => c.AspNetUsers).ToList();
            var userAreacod = new List <AreaOperativaModel>();

            foreach (var item in userArea)
            {
                userAreacod.Add(areaOperativaService.GetSingle(d => d.CA_ID_AREA == item.CA_ID_AREA));
            }

            List <ReporteSaldoContablePartialModel> Lista = GetSaldoContableFiltro(parms, user);

            MemoryStream    memoryStream = new MemoryStream();
            List <string[]> header       = new List <string[]>();

            header.Add(new string[] { "A" });
            header.Add(new string[] { "B" });
            header.Add(new string[] { "C" });
            header.Add(new string[] { "D" });
            header.Add(new string[] { "E" });
            byte[] fileExcell    = reportExcelService.CreateReportBinary <ReporteSaldoContablePartialModel>(header, Lista, "Excel1");
            var    contentLength = fileExcell.Length;

            var statuscode = HttpStatusCode.OK;

            response         = Request.CreateResponse(statuscode);
            response.Content = new StreamContent(new MemoryStream(fileExcell));
            response.Content.Headers.ContentType   = new MediaTypeHeaderValue("application/octet-stream");
            response.Content.Headers.ContentLength = contentLength;
            ContentDispositionHeaderValue contentDisposition = null;

            if (ContentDispositionHeaderValue.TryParse("inline; filename=" + "document" + ".xlsx", out contentDisposition))
            {
                response.Content.Headers.ContentDisposition = contentDisposition;
            }
            return(response);
        }
Пример #3
0
        private List <ReporteSaldoContablePartialModel> GetSaldos([FromUri] ParametersSaldoContable parms, IdentityUser user)
        {
            try
            {
                List <reporteSaldos> model = saldoServ.reportesaldoServLista(parms.FechaCorte.Value).ToList();

                // Inicio filtro de Empresas

                List <UsuarioEmpresaModel> listUsuarioEmpresas = new List <UsuarioEmpresaModel>();
                //IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                var listEmpresas = usuarioEmpresaService.GetAll(c => c.US_ID_USUARIO == user.Id, null, c => c.SAX_EMPRESA);
                if (listEmpresas.Count > 0)
                {
                    foreach (var emp in listEmpresas)
                    {
                        listUsuarioEmpresas.Add(emp);
                    }
                }

                // Inicio filtro por area del usuario
                var userArea    = usuarioAreaService.GetAll(d => d.US_ID_USUARIO == user.Id && d.UA_ESTATUS == 1, null, includes: c => c.AspNetUsers).ToList();
                var userAreacod = new List <AreaOperativaModel>();


                foreach (var item in userArea)
                {
                    userAreacod.Add(areaOperativaService.GetSingle(d => d.CA_ID_AREA == item.CA_ID_AREA));
                }
                userAreacod.Add(areaOperativaService.GetSingle(h => h.CA_NOMBRE.Contains("Generica")));

                var SaldoContable_Emp = new List <reporteSaldos>();
                var SaldoContable     = new List <reporteSaldos>();

                if (model != null)
                {
                    if (parms.IdEmpresa == null)
                    {
                        foreach (var a in listUsuarioEmpresas)
                        {
                            foreach (var b in model)
                            {
                                if (b.EMPRESA == a.SAX_EMPRESA.CE_COD_EMPRESA)
                                {
                                    SaldoContable_Emp.Add(b);
                                }
                            }
                        }
                    }
                    else
                    {
                        string codEmp = usuarioEmpresaService.GetSingle(z => z.CE_ID_EMPRESA == parms.IdEmpresa).SAX_EMPRESA.CE_COD_EMPRESA;
                        SaldoContable_Emp = model.Where(c => c.EMPRESA == codEmp).ToList();
                    }
                    if (parms.IdAreaOperativa == null)
                    {
                        foreach (var a in userAreacod)
                        {
                            foreach (var b in SaldoContable_Emp)
                            {
                                if (b.ID_AREA == a.CA_ID_AREA)
                                {
                                    SaldoContable.Add(b);
                                }
                            }
                        }
                    }
                    else
                    {
                        SaldoContable = SaldoContable_Emp.Where(c => c.ID_AREA == parms.IdAreaOperativa).ToList();
                    }
                }



                List <ReporteSaldoContablePartialModel> ListSaldosRetur = (from c in SaldoContable
                                                                           select new ReporteSaldoContablePartialModel
                {
                    nombreempresa = GetNombreEmp(c.EMPRESA),
                    //c.nombreempresa,
                    codcuentacontable = GetCuenta(c.ID_CUENTA, 0),
                    //c.codcuentacontable,
                    nombrecuentacontable = GetCuenta(c.ID_CUENTA, 1),
                    //c.nombrecuentacontable,
                    nombreareaoperativa = GetNombreArea(c.ID_AREA),
                    //c.nombreareaoperativa,

                    codmoneda = c.MONEDA,
                    saldo = c.SALDOS
                }).ToList();

                if (parms.IdCuentaContable != null)
                {
                    ListSaldosRetur = ListSaldosRetur.Where(c => c.codcuentacontable == parms.IdCuentaContable).ToList();
                }

                ListSaldosRetur = ListSaldosRetur.OrderBy(c => c.nombreempresa).ToList();
                return(ListSaldosRetur);


                //return Listsaldo;
            }
            catch (Exception Ex)
            {
                return(null);
            }
        }
Пример #4
0
        public List <ReporteSaldoContablePartialModel> GetSaldoContableFiltro(ParametersSaldoContable parms, IdentityUser user)
        {
            try
            {
                int CodConcilia = Convert.ToInt16(BusinessEnumerations.Concilia.SI);

                // obtengo todos los saldos de las cuentas conciliables
                var model = reportService.GetAll(null, null, includes: c => c.AspNetUsers).Where(r => r.SAX_CUENTA_CONTABLE.CO_COD_CONCILIA == CodConcilia.ToString() &&
                                                                                                 r.SAX_CUENTA_CONTABLE.SAX_EMPRESA.CE_ID_EMPRESA == (parms.IdEmpresa == null ? r.SAX_CUENTA_CONTABLE.CE_ID_EMPRESA : parms.IdEmpresa) &&
                                                                                                 r.SA_FECHA_CORTE.Date <= (Convert.ToDateTime(parms.FechaCorte).Date == null ? r.SA_FECHA_CORTE.Date : Convert.ToDateTime(parms.FechaCorte).Date)
                                                                                                 //  && r.SAX_CUENTA_CONTABLE.CO_ID_CUENTA_CONTABLE == (parms.IdCuentaContable == null ? r.SAX_CUENTA_CONTABLE.CO_ID_CUENTA_CONTABLE : parms.IdCuentaContable)
                                                                                                 && r.SAX_CUENTA_CONTABLE.ca_id_area == (parms.IdAreaOperativa == null ? r.SAX_CUENTA_CONTABLE.ca_id_area : parms.IdAreaOperativa)
                                                                                                 );


                // Inicio filtro de Empresas

                List <UsuarioEmpresaModel> listUsuarioEmpresas = new List <UsuarioEmpresaModel>();
                //IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                var listEmpresas = usuarioEmpresaService.GetAll(c => c.US_ID_USUARIO == user.Id, null, c => c.SAX_EMPRESA);
                if (listEmpresas.Count > 0)
                {
                    foreach (var emp in listEmpresas)
                    {
                        listUsuarioEmpresas.Add(emp);
                    }
                }

                // Inicio filtro por area del usuario
                var userArea    = usuarioAreaService.GetAll(d => d.US_ID_USUARIO == user.Id && d.UA_ESTATUS == 1, null, includes: c => c.AspNetUsers).ToList();
                var userAreacod = new List <AreaOperativaModel>();


                foreach (var item in userArea)
                {
                    userAreacod.Add(areaOperativaService.GetSingle(d => d.CA_ID_AREA == item.CA_ID_AREA));
                }
                userAreacod.Add(areaOperativaService.GetSingle(h => h.CA_NOMBRE.Contains("Generica")));

                var SaldoContable_Emp = new List <ReporteSaldoContableModel>();
                var SaldoContable     = new List <ReporteSaldoContableModel>();

                if (model != null)
                {
                    if (parms.IdEmpresa == null)
                    {
                        foreach (var a in listUsuarioEmpresas)
                        {
                            foreach (var b in model)
                            {
                                if (b.SAX_CUENTA_CONTABLE.CE_ID_EMPRESA == a.CE_ID_EMPRESA)
                                {
                                    SaldoContable_Emp.Add(b);
                                }
                            }
                        }
                    }
                    else
                    {
                        SaldoContable_Emp = model.ToList();
                    }
                    if (parms.IdAreaOperativa == null)
                    {
                        foreach (var a in userAreacod)
                        {
                            foreach (var b in SaldoContable_Emp)
                            {
                                if (b.SAX_CUENTA_CONTABLE.ca_id_area == a.CA_ID_AREA)
                                {
                                    SaldoContable.Add(b);
                                }
                            }
                        }
                    }
                    else
                    {
                        SaldoContable = model.ToList();
                    }
                }


                var ListSaldos = (from c in SaldoContable
                                  select new ReporteSaldoContablePartialModel
                {
                    nombreempresa = c.SAX_CUENTA_CONTABLE.SAX_EMPRESA.CE_COD_EMPRESA.Trim() + " " + c.SAX_CUENTA_CONTABLE.SAX_EMPRESA.CE_NOMBRE.Trim(),
                    codcuentacontable = c.SAX_CUENTA_CONTABLE.CO_CUENTA_CONTABLE.Trim() + c.SAX_CUENTA_CONTABLE.CO_COD_AUXILIAR.Trim() + c.SAX_CUENTA_CONTABLE.CO_NUM_AUXILIAR.Trim(),
                    nombrecuentacontable = c.SAX_CUENTA_CONTABLE.CO_NOM_CUENTA.Trim(),
                    nombreareaoperativa = c.SAX_CUENTA_CONTABLE.SAX_AREA_OPERATIVA.CA_COD_AREA + " " + c.SAX_CUENTA_CONTABLE.SAX_AREA_OPERATIVA.CA_NOMBRE.Trim(),
                    // fechaforte = c.SA_FECHA_CORTE.ToString("yyyy/MM/dd"),
                    codmoneda = c.SAX_MONEDA.CC_NUM_MONEDA,
                    saldo = c.SA_SALDOS
                }).ToList();

                var res =
                    from p in ListSaldos.ToList()
                    group p by new
                {
                    p.nombreempresa,
                    p.codmoneda,
                    p.nombreareaoperativa,
                    p.nombrecuentacontable,
                    p.codcuentacontable
                } into g

                    select new
                {
                    nombreempresa        = g.Key.nombreempresa,
                    codcuentacontable    = g.Key.codcuentacontable,
                    nombrecuentacontable = g.Key.nombrecuentacontable,
                    nombreareaoperativa  = g.Key.nombreareaoperativa,
                    codmoneda            = g.Key.codmoneda,
                    saldo = g.Sum(y => y.saldo)
                };

                List <ReporteSaldoContablePartialModel> ListSaldosRetur = (from c in res
                                                                           select new ReporteSaldoContablePartialModel
                {
                    nombreempresa = c.nombreempresa,
                    codcuentacontable = c.codcuentacontable,
                    nombrecuentacontable = c.nombrecuentacontable,
                    nombreareaoperativa = c.nombreareaoperativa,
                    fechacorte = parms.FechaCorte.Value.Date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture),
                    codmoneda = c.codmoneda,
                    saldo = c.saldo
                }).ToList();

                ListSaldosRetur = ListSaldosRetur.OrderBy(c => c.nombreempresa).ToList();
                return(ListSaldosRetur);
            }
            catch (Exception e)
            {
                return(null);
            }
        }