コード例 #1
0
ファイル: MovimientoBL.cs プロジェクト: EvertNube/nbLibros
 public bool update(MovimientoDTO Movimiento)
 {
     using (var context = getContext())
     {
         try
         {
             var datoRow = context.Movimiento.Where(x => x.IdMovimiento == Movimiento.IdMovimiento).SingleOrDefault();
             datoRow.IdCuentaBancaria = Movimiento.IdCuentaBancaria;
             datoRow.IdEntidadResponsable = Movimiento.IdEntidadResponsable;
             datoRow.IdFormaMovimiento = Movimiento.IdFormaMovimiento;
             datoRow.IdTipoDocumento = Movimiento.IdTipoDocumento == 0 ? null : Movimiento.IdTipoDocumento;
             //El IdCategoria sera 1 porque la Categoria con Id = 1 es No tiene categoria
             //datoRow.IdCategoria = (Movimiento.IdCategoria != 0 && Movimiento.IdCategoria != null) ? Movimiento.IdCategoria : 1;
             datoRow.IdCategoria = Movimiento.IdCategoria;
             datoRow.IdEstadoMovimiento = Movimiento.IdEstadoMovimiento;
             datoRow.NroOperacion = Movimiento.NroOperacion;
             //Hora Actual
             DateTime Hora = DateTime.Now;
             Movimiento.Fecha = Movimiento.Fecha + new TimeSpan(Hora.Hour, Hora.Minute, Hora.Second);
             //--------
             datoRow.Fecha = Convert.ToDateTime(Movimiento.Fecha.ToString("yyyy-MM-dd hh:mm:ss tt"));
             datoRow.Monto = Movimiento.Monto;
             datoRow.TipoCambio = Movimiento.TipoCambio;
             datoRow.NumeroDocumento = Movimiento.NumeroDocumento;
             datoRow.Comentario = Movimiento.Comentario;
             datoRow.Estado = Movimiento.Estado;
             datoRow.UsuarioCreacion = Movimiento.UsuarioCreacion;
             //datoRow.FechaCreacion = Movimiento.FechaCreacion;
             datoRow.FechaCreacion = Convert.ToDateTime(Movimiento.FechaCreacion.ToString("yyyy-MM-dd hh:mm:ss tt"));
             datoRow.MontoSinIGV = Movimiento.MontoSinIGV ?? 0;
             datoRow.IdComprobante = Movimiento.IdComprobante == 0 ? null : Movimiento.IdComprobante;
             context.SaveChanges();
             //Actualizar saldos del Libro
             ActualizarSaldos(Movimiento.IdCuentaBancaria);
             //Actualizar saldo Bancario en Movimiento
             //ActualizarSaldoBancarioEnMovimiento(Movimiento.IdMovimiento);
             return true;
         }
         catch (Exception e)
         {
             throw e;
         }
     }
 }
コード例 #2
0
ファイル: AdminController.cs プロジェクト: EvertNube/nbLibros
        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 });
        }
コード例 #3
0
ファイル: MovimientoBL.cs プロジェクト: EvertNube/nbLibros
 public bool add(MovimientoDTO Movimiento)
 {
     using (var context = getContext())
     {
         try
         {
             Movimiento nuevo = new Movimiento();
             nuevo.IdCuentaBancaria = Movimiento.IdCuentaBancaria;
             nuevo.IdEntidadResponsable = Movimiento.IdEntidadResponsable;
             nuevo.IdFormaMovimiento = Movimiento.IdFormaMovimiento;
             nuevo.IdTipoDocumento = (Movimiento.IdTipoDocumento != 0 && Movimiento.IdTipoDocumento != null ) ? Movimiento.IdTipoDocumento : null;
             //El IdCategoria sera 1 porque la Categoria con Id = 1 es No tiene categoria
             //nuevo.IdCategoria = (Movimiento.IdCategoria != 0 && Movimiento.IdCategoria != null) ? Movimiento.IdCategoria : 1;
             nuevo.IdCategoria = Movimiento.IdCategoria;
             nuevo.IdEstadoMovimiento = Movimiento.IdEstadoMovimiento;
             nuevo.NroOperacion = Movimiento.NroOperacion;
             //Hora Actual
             DateTime Hora = DateTime.Now;
             Movimiento.FechaCreacion = Movimiento.FechaCreacion + new TimeSpan(Hora.Hour, Hora.Minute, Hora.Second);
             Movimiento.Fecha = Movimiento.Fecha + new TimeSpan(Hora.Hour, Hora.Minute, Hora.Second);
             //--------
             nuevo.Fecha = Convert.ToDateTime(Movimiento.Fecha.ToString("yyyy-MM-dd hh:mm:ss tt"));
             nuevo.Monto = Movimiento.Monto;
             nuevo.TipoCambio = Movimiento.TipoCambio;
             nuevo.NumeroDocumento = Movimiento.NumeroDocumento;
             nuevo.Comentario = Movimiento.Comentario;
             nuevo.Estado = true;
             nuevo.UsuarioCreacion = Movimiento.UsuarioCreacion;
             //nuevo.FechaCreacion = Movimiento.FechaCreacion;
             nuevo.FechaCreacion = Convert.ToDateTime(Movimiento.FechaCreacion.ToString("yyyy-MM-dd hh:mm:ss tt"));
             nuevo.MontoSinIGV = Movimiento.MontoSinIGV ?? 0;
             nuevo.IdComprobante = Movimiento.IdComprobante == 0 ? null : Movimiento.IdComprobante;
             context.Movimiento.Add(nuevo);
             context.SaveChanges();
             
             //Actualizar saldos del Libro
             ActualizarSaldos(Movimiento.IdCuentaBancaria);
             //Actualizar saldo Bancario en Movimiento
             ActualizarSaldoBancarioEnMovimiento(nuevo.IdMovimiento);
             //Actualizar Fecha de Ultima Fecha de Conciliacion en la Empresa
             //ActualizarFechaConciliacionEnEmpresa(Movimiento.IdCuentaBancaria);
             return true;
         }
         catch (Exception e)
         {
             throw e;
         }
     }
 }
コード例 #4
0
ファイル: AdminController.cs プロジェクト: EvertNube/nbLibros
        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();
        }