protected override ValidationResult IsValid(object value, ValidationContext validationContext) { AsientoContableDto asiento = (AsientoContableDto)validationContext.ObjectInstance; double TotalDebitos = 0; double TotalCreditos = 0; if (asiento.Cuentas != null) { foreach (var cuenta in asiento.Cuentas) { if (cuenta.tipo.ToLower() == "db") { TotalDebitos += cuenta.monto; } else if (cuenta.tipo.ToLower() == "cr") { TotalCreditos += cuenta.monto; } } if (TotalCreditos != TotalDebitos) { return(new ValidationResult("")); } } else { return(new ValidationResult("")); } return(ValidationResult.Success); }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { AsientoContableDto asiento = (AsientoContableDto)validationContext.ObjectInstance; ContabilidadEntities1 db = new ContabilidadEntities1(); List <int> IdValidos = db.Auxiliar.Select(c => c.idAuxiliar).ToList(); IdValidos.Add(0); if (!IdValidos.Contains(asiento.Auxiliar)) { return(new ValidationResult("El id del auxiliar es invalido")); } return(ValidationResult.Success); }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { AsientoContableDto asiento = (AsientoContableDto)validationContext.ObjectInstance; if (asiento.Cuentas != null) { foreach (var cuenta in asiento.Cuentas) { if (asiento.Cuentas.Where(c => c.id == cuenta.id).ToList().Count > 1) { return(new ValidationResult("")); } } } else { return(new ValidationResult("")); } return(ValidationResult.Success); }
public IHttpActionResult PutAsientoContable(int id, AsientoContableDto asientoContableDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != asientoContableDto.idAsiento) { return(BadRequest()); } if (asientoContableDto.Cuentas.Count == 0) { return(BadRequest("Debe especificar las cuentas de este asiento")); } if (asientoContableDto.Auxiliar == 0) { asientoContableDto.Auxiliar = (int)Auxiliares.Contabilidad; } //foreach (var cuenta in asientoContableDto.Cuentas) //{ // cuenta.id = asientoContableDto.idAsiento; //} AsientoContable asientoContable = new AsientoContable { idAsientoContable = asientoContableDto.idAsiento, Descripcion = asientoContableDto.Descripcion, idAuxiliar = asientoContableDto.Auxiliar, AsientoCuenta = asientoContableDto.Cuentas.Select(c => new AsientoCuenta { idCuentaContable = c.id, idAsientoContable = asientoContableDto.idAsiento, Monto = c.monto, tipoMov = c.tipo }).ToArray(), Fecha = DateTime.Now, Estado = "Registrado" }; db.Entry(asientoContable).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!AsientoContableExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PostAsientoContable(AsientoContableDto asientoContableDto) { if (!ModelState.IsValid) { return(BadRequest(" Objeto invalido. Para mas información comuniquese con el administrador de la api. ")); } if (asientoContableDto.Auxiliar == 0) { asientoContableDto.Auxiliar = (int)Auxiliares.Contabilidad; } AsientoContable asientoContable = new AsientoContable { Descripcion = asientoContableDto.Descripcion, idAuxiliar = asientoContableDto.Auxiliar, AsientoCuenta = asientoContableDto.Cuentas.Select(c => new AsientoCuenta { idCuentaContable = c.id, Monto = c.monto, tipoMov = c.tipo }).ToArray(), Fecha = DateTime.Now, Estado = "Registrado" }; //Refrescando balances db.AsientoContable.Add(asientoContable); foreach (var cuenta in asientoContable.AsientoCuenta) { var cuentaContable = db.CuentaContable.Include(c => c.TipoCuenta).Single(c => c.idCuentaContable == cuenta.idCuentaContable); if (cuentaContable.TipoCuenta.Origen.ToLower() == "db") { cuentaContable.Balance += (cuenta.tipoMov.ToLower() == "db") ? cuenta.Monto : -cuenta.Monto; } else { cuentaContable.Balance += (cuenta.tipoMov.ToLower() == "cr") ? cuenta.Monto : -cuenta.Monto; } //cuentaContable.Balance += cuenta.Monto; } try { db.SaveChanges(); } catch (DbUpdateException) { if (AsientoContableExists(asientoContable.idAsientoContable)) { return(Conflict()); } else { throw; } } //return CreatedAtRoute("DefaultApi", new { id = asientoContable.idAsientoContable }, asientoContable); return(Ok("Asiento registrado sastifactoriamente")); }