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