示例#1
0
 public bool delete(int id)
 {
     using (var context = getContext())
     {
         try
         {
             var row = context.Comprobante.Where(x => x.IdComprobante == id).SingleOrDefault();
             //Si el comprobante esta ligado a Movimientos primero se eliminan todos los Movimientos
             var allmovimientos = context.Movimiento.Where(x => x.IdComprobante == row.IdComprobante).ToList();
             MovimientoBL movBL = new MovimientoBL();
             foreach (var item in allmovimientos)
             {
                 movBL.delete(item.IdMovimiento);
             }
             //Si el comprobante esta ligado a pagos por areas primero se eliminan todos sus montos AreasPorComprobantes
             var allmontos = context.AreaPorComprobante.Where(x => x.IdComprobante == row.IdComprobante).ToList();
             foreach (var item in allmontos)
             {
                 row.AreaPorComprobante.Remove(item);
             }
             context.Comprobante.Remove(row);
             context.SaveChanges();
             return true;
         }
         catch (Exception e)
         {
             throw e;
         }
     }
 }
示例#2
0
 public bool ban(int id, string comentario)
 {
     using (var context = getContext())
     {
         try
         {
             var row = context.Comprobante.Where(x => x.IdComprobante == id).SingleOrDefault();
             if (row.IdTipoComprobante < 3)
             {
                 //Si el comprobante esta ligado a Movimientos primero se eliminan todos los Movimientos
                 var allmovimientos = context.Movimiento.Where(x => x.IdComprobante == row.IdComprobante).ToList();
                 MovimientoBL movBL = new MovimientoBL();
                 foreach (var item in allmovimientos)
                 {
                     movBL.delete(item.IdMovimiento);
                 }
                 //Anulando el Comprobante
                 row.IdTipoComprobante = row.IdTipoComprobante == 1 ? 3 : 4;
                 row.Ejecutado = false;
                 row.Comentario = comentario;
                 context.SaveChanges();
                 return true;
             }
             return false;
         }
         catch (Exception e)
         {
             throw e;
         }
     }
 }
示例#3
0
        public ActionResult AddMovimiento(MovimientoDTO dto)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            if (getCurrentUser().IdRol == 4) { return RedirectToAction("Libro", new { id = dto.IdCuentaBancaria }); }
            try
            {
                MovimientoBL objBL = new MovimientoBL();
                MovimientoDTO dtoAnterior = objBL.getMovimiento(dto.IdMovimiento);
                if (dto.IdComprobante != null && dto.cmpMontoPendiente != null)
                {
                    if (Decimal.Round(dto.cmpMontoPendiente.GetValueOrDefault(), 0) < 0)
                    {
                        createResponseMessage(CONSTANTES.ERROR, "<strong>Error.</strong> No se puede pagar un monto mayor al monto pendiente");
                        if (dto.IdComprobante == dtoAnterior.IdComprobante)
                        { dto.Monto = dto.IdMovimiento != 0 ? dtoAnterior.Monto : 0; }
                        else { dto.Monto = 0; }
                        TempData["Movimiento"] = dto;
                        return RedirectToAction("Movimiento", new { id = 0, idLibro = dto.IdCuentaBancaria });
                    }
                }
                if (dto.IdMovimiento == 0)
                {
                    if (objBL.add(dto))
                    {
                        if (dto.IdComprobante.GetValueOrDefault() != 0)
                        {
                            if (Decimal.Round(dto.cmpMontoPendiente.GetValueOrDefault(), 0) == 0) { ActualizarEjecucionComprobante(dto.IdComprobante.GetValueOrDefault(), true, dto.Fecha); }
                            else { ActualizarEjecucionComprobante(dto.IdComprobante.GetValueOrDefault(), dto.cmpCancelado, dto.Fecha); }
                        }
                        createResponseMessage(CONSTANTES.SUCCESS);
                        return RedirectToAction("Libro", new { id = dto.IdCuentaBancaria, page = TempData["PagMovs"] });
                    }
                }
                else if (dto.IdMovimiento != 0)
                {
                    if (objBL.update(dto))
                    {
                        if (dto.IdComprobante.GetValueOrDefault() != 0)
                        {
                            if (Decimal.Round(dto.cmpMontoPendiente.GetValueOrDefault(), 0) == 0) { ActualizarEjecucionComprobante(dto.IdComprobante.GetValueOrDefault(), true, dto.Fecha); }
                            else { ActualizarEjecucionComprobante(dto.IdComprobante.GetValueOrDefault(), dto.cmpCancelado, dto.Fecha); }
                        }
                        //Si en la actualizacion se cambio el IdComprobante
                        if (dtoAnterior.IdComprobante != null && dtoAnterior.IdComprobante != dto.IdComprobante)
                        { ActualizarEjecucionComprobante(dtoAnterior.IdComprobante.GetValueOrDefault(), false, dto.Fecha); }

                        createResponseMessage(CONSTANTES.SUCCESS);
                        return RedirectToAction("Libro", new { id = dto.IdCuentaBancaria, page = TempData["PagMovs"] });
                    }
                    else
                    {
                        createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                    }
                }
                else
                {
                    createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
                }
            }
            catch (Exception e)
            {
                if (dto.IdMovimiento != 0)
                    createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                else createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
            }
            TempData["Movimiento"] = dto;
            return RedirectToAction("Movimiento", "Admin", new { id = 0, idLibro = dto.IdCuentaBancaria });
        }
示例#4
0
        public ActionResult DeleteMovimiento(int id, int idCuentaBancaria)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            if (getCurrentUser().IdRol == 4) { return RedirectToAction("Libro", "Admin", new { id = idCuentaBancaria }); }

            try
            {
                MovimientoBL objBL = new MovimientoBL();
                if (objBL.delete(id))
                {
                    createResponseMessage(CONSTANTES.SUCCESS, CONSTANTES.SUCCESS_DELETE);
                }
                else
                {
                    createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_DELETE);
                }
            }
            catch (Exception e)
            {
                createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_NO_DELETE);
                throw;
            }
            return RedirectToAction("Libro", "Admin", new { id = idCuentaBancaria });
        }
示例#5
0
        public ActionResult Movimiento(int? id = null, int? idLibro = null)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            ViewBag.Title = "Movimiento";
            MenuNavBarSelected(1);
            UsuarioDTO miUsuario = getCurrentUser();

            EmpresaBL empBL = new EmpresaBL();
            EmpresaDTO empresa = empBL.getEmpresa(miUsuario.IdEmpresa);

            ViewBag.SimboloMoneda = empresa.SimboloMoneda;

            MovimientoBL objBL = new MovimientoBL();
            ViewBag.IdMovimiento = id;
            ViewBag.EstadosMovimientos = objBL.getEstadosMovimientos(false);

            CuentaBancariaBL objCuentaBL = new CuentaBancariaBL();
            CuentaBancariaDTO objLibro = objCuentaBL.getCuentaBancariaSoloEnEmpresa(miUsuario.IdEmpresa, idLibro.GetValueOrDefault());
            if (objLibro == null) { return RedirectToAction("Index", "Admin"); }

            ViewBag.IdTipoCuenta = objLibro.IdTipoCuenta;
            ViewBag.lstTipoMovs = objBL.getTiposMovimientos();
            ViewBag.lstFormaMovs = ViewBag.IdTipoCuenta == 1 ? objBL.getListaFormaDeMovimientos() : objBL.getListaFormaDeMovimientosBasic();

            EntidadResponsableBL entBL = new EntidadResponsableBL();
            ViewBag.TipoEntidades = entBL.getTipoDeEntidades();
            ViewBag.EntidadesResponsables = objBL.getEntidadesResponsablesEnEmpresa(miUsuario.IdEmpresa, false);

            ViewBag.lstTiposDeDocumento = objBL.getListaTiposDeDocumentoVB(true);
            ViewBag.NombreCategoria = "Sin Categoría";
            ViewBag.Categorias = CategoriasBucle(empresa.IdEmpresa, (int)empresa.IdPeriodo, null, null);
            ViewBag.Comprobantes = objBL.getComprobantesPendientesEnEmpresa(miUsuario.IdEmpresa);

            var objSent = TempData["Movimiento"];
            if (objSent != null) { TempData["Movimiento"] = null; return View(objSent); }
            if (id == 0 && idLibro != null)
            {
                MovimientoDTO nuevo = new MovimientoDTO();
                nuevo.IdCuentaBancaria = (int)idLibro;
                nuevo.Fecha = DateTime.Now;
                nuevo.TipoCambio = (new EmpresaBL()).getEmpresa(miUsuario.IdEmpresa).TipoCambio;
                nuevo.NumeroDocumento = null;
                //nuevo.Comentario = "No existe comentario";
                nuevo.Estado = true;
                nuevo.UsuarioCreacion = miUsuario.IdUsuario;
                nuevo.FechaCreacion = DateTime.Now;
                return View(nuevo);
            }
            else
            {
                if (id != null)
                {
                    MovimientoDTO obj = objBL.getMovimiento((int)id);
                    if (obj == null) return RedirectToAction("Libro", "Admin", new { id = objLibro.IdCuentaBancaria });
                    if (obj.IdCuentaBancaria != objLibro.IdCuentaBancaria) return RedirectToAction("Libro", "Admin", new { id = objLibro.IdCuentaBancaria });

                    CuentaBancariaDTO objLibroMov = objCuentaBL.getCuentaBancariaEnEmpresa(miUsuario.IdEmpresa, obj.IdCuentaBancaria);
                    if (objLibroMov == null) return RedirectToAction("Index", "Admin");
                    if (objLibroMov.IdEmpresa != miUsuario.IdEmpresa) return RedirectToAction("Index", "Admin");

                    obj.UsuarioCreacion = miUsuario.IdUsuario;
                    ViewBag.NombreCategoria = objBL.getNombreCategoria(obj.IdCategoria.GetValueOrDefault());
                    return View(obj);
                }
            }
            return View();
        }
示例#6
0
        public ActionResult Movimientos()
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }

            ViewBag.Title = "Movimientos";

            MovimientoBL objBL = new MovimientoBL();
            return View(objBL.getMovimientos());
        }
示例#7
0
        public JsonResult ActualizarEstadoEnMovimiento(int idMovimiento)
        {
            Decimal SaldoBancario = 0;
            if (!this.currentUser() || isUsuarioExterno()) return Json(new { SaldoBancario }, JsonRequestBehavior.AllowGet);

            UsuarioDTO miUsuario = getCurrentUser();
            MovimientoBL obj = new MovimientoBL();
            obj.ActualizarEstadoMovimiento(idMovimiento);
            SaldoBancario = obj.ActualizarSaldoBancarioEnMovimiento_Decimal(idMovimiento);
            //ActualizarSaldoBancarioEnMovimiento(Movimiento.IdMovimiento);
            return Json(new { SaldoBancario }, JsonRequestBehavior.AllowGet);
        }
示例#8
0
        public JsonResult Buscar_Elementos(string texto, int page = 0)
        {
            texto = texto.ToLower();
            EmpresaDTO empresa = (new EmpresaBL()).getEmpresa(getCurrentUser().IdEmpresa);

            MovimientoBL movimientoBL = new MovimientoBL();
            ComprobanteBL comprobanteBL = new ComprobanteBL();
            MovimientoInvBL movimientoInvBL = new MovimientoInvBL();

            List<MovimientoDTO> lstMovimientos = movimientoBL.getMovimientos_EnEmpresa(empresa.IdEmpresa);
            List<ComprobanteDTO> lstComprobantes = comprobanteBL.getComprobantesEnEmpresa(empresa.IdEmpresa);
            List<MovimientoInvDTO> lstMovimientoInv = movimientoInvBL.getMovimientoInvsEnEmpresa(empresa.IdEmpresa);

            List<sItem> ListaS1, ListaS2, ListaS3;

            ListaS1 = lstMovimientos.Where(x => 
                            (x.NroOperacion.ToLower() ?? "").Contains(texto)||
                            (x.Monto.ToString()).Contains(texto)||
                            (x.NombreCategoria.ToLower() ?? "").Contains(texto)||
                            x.nTipoDocumento.ToLower().Contains(texto)||
                            (x.NumeroDocumento.ToLower() ?? "").Contains(texto)||
                            x.NombreEntidadR.ToLower().Contains(texto)
                            ).Select(x => new sItem {
                                id = x.IdMovimiento,
                                nombre = x.NroOperacion,
                                monto = x.Monto,
                                idElemento = 1,
                                elemento = "Movimiento",
                                tipo = x.IdCuentaBancaria.ToString(), //LibroBancario
                                simboloMoneda = x.SimboloMoneda,
                                s1 = x.NombreCategoria,
                                s2 = x.nTipoDocumento,
                                s3 = x.NumeroDocumento,
                                s4 = x.NombreEntidadR
                            }).ToList();

            ListaS2 = lstComprobantes.Where(x => 
                            (x.NroDocumento).Contains(texto)||
                            (x.Monto.ToString()).Contains(texto)||
                            x.NombreTipoDocumento.ToLower().Contains(texto)||
                            x.NombreEntidad.ToLower().Contains(texto)
                            ).Select(x => new sItem
                            {
                                id = x.IdComprobante,
                                nombre = x.NroDocumento,
                                monto = x.Monto,
                                idElemento = 2,
                                elemento = "Comprobante",
                                tipo = x.IdTipoComprobante.ToString(),
                                simboloMoneda = x.SimboloMoneda,
                                s1 = x.NombreTipoDocumento,
                                s2 = x.NombreEntidad
                            }).ToList();

            ListaS3 = lstMovimientoInv.Where(x => 
                            (x.NroDocumento.ToLower()).Contains(texto)||
                            (x.Cantidad.ToString()).Contains(texto)||
                            x.nItem.ToLower().Contains(texto)||
                            x.UnidadMedida.ToLower().Contains(texto)||
                            x.nForma.ToLower().Contains(texto)||
                            x.SerieLote.ToLower().Contains(texto)
                            ).Select(x => new sItem
                            {
                                id = x.IdMovimientoInv,
                                nombre = x.NroDocumento,
                                monto = x.Cantidad,
                                idElemento = 3,
                                elemento = "Movimiento Inv.",
                                tipo = x.IdTipoMovimientoInv.ToString(),
                                s1 = x.nItem,
                                s2 = x.UnidadMedida,
                                s3 = x.nForma,
                                s4 = x.SerieLote
                            }).ToList();

            ListaS1.AddRange(ListaS2);
            ListaS1.AddRange(ListaS3);

            InfoSItem elem = new InfoSItem();
            elem.total_count = ListaS1.Count();
            //elem.items = ListaS1.Skip(5 * page).Take(5).ToList();
            elem.items = ListaS1;

            return Json(new { elem }, JsonRequestBehavior.AllowGet);
        }
示例#9
0
        public ActionResult Comprobante(int? id = null, int? idTipoComprobante = null)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            ViewBag.Title = "Comprobante";

            int tipoComprobante = 1;
            if (idTipoComprobante != null) { tipoComprobante = idTipoComprobante.GetValueOrDefault(); }
            MenuNavBarSelected(3, tipoComprobante - 1);
            //MenuNavBarSelected(2);
            UsuarioDTO currentUser = getCurrentUser();
            EmpresaDTO empresa = (new EmpresaBL()).getEmpresa(currentUser.IdEmpresa);

            ComprobanteBL objBL = new ComprobanteBL();
            ViewBag.lstTipoDocumento = objBL.getTipoDeDocumentos();
            ViewBag.lstClientes = objBL.getListaClientesEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstProveedores = objBL.getListaProveedoresEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstMonedas = objBL.getListaMonedas();
            ViewBag.lstAreas = objBL.getListaAreasEnEmpresa(currentUser.IdEmpresa, false);
            ViewBag.lstResponsables = objBL.getListaResponsablesEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstHonorarios = objBL.getListaHonorariosEnEmpresa(currentUser.IdEmpresa);
            ViewBag.Proyectos = new List<ProyectoDTO>();
            ViewBag.Categorias = CategoriasBucle(empresa.IdEmpresa, (int)empresa.IdPeriodo, null, null);

            //Lista de Movimientos Asociados al comprobante
            ViewBag.lstMovimientos = objBL.getMovimientos_AsocComprobante(empresa.IdEmpresa, id.GetValueOrDefault());

            var objSent = TempData["Comprobante"];
            if (objSent != null) { TempData["Comprobante"] = null; return View(objSent); }

            ComprobanteDTO obj;
            if (id != null && id != 0)
            {
                obj = objBL.getComprobanteEnEmpresa((int)currentUser.IdEmpresa, (int)id);
                if (obj == null) return RedirectToAction("Comprobantes");
                if (obj.IdEmpresa != currentUser.IdEmpresa) return RedirectToAction("Comprobantes");
                obj.UsuarioCreacion = currentUser.IdUsuario;
                ViewBag.Montos = obj.lstMontos;

                //Movimientos asociados
                MovimientoBL objMov = new MovimientoBL();
                ViewBag.Movimientos = objMov.getMovimientos_Asoc_Comprobante(obj.IdComprobante);

                return View(obj);
            }
            obj = new ComprobanteDTO();
            obj.IdEmpresa = currentUser.IdEmpresa;
            obj.TipoCambio = (new EmpresaBL()).getEmpresa(currentUser.IdEmpresa).TipoCambio;
            obj.UsuarioCreacion = currentUser.IdUsuario;
            obj.FechaEmision = DateTime.Now;

            if (idTipoComprobante != null && idTipoComprobante != 0) obj.IdTipoComprobante = idTipoComprobante.GetValueOrDefault();
            return View(obj);
        }