public bool ValidacionUnique(FacturaDetalleViewModel model) { var query = getQueriableBaseActive().Where(w => w.FacturaId == model.FacturaId && w.InventarioId == model.InventarioId && w.Estregistro == 1); if (model.Id != null) { query = query.Where(w => w.Id != model.Id); } var data = query.FirstOrDefault(); if (data != null) { jresult.Errores.addError("General", "Ya existe un registro con datos similares"); return(false); } return(true); }
public JResult InsFacturaDetalle(FacturaDetalleViewModel model) { try { ProductoBL productoBL = new ProductoBL(); var producto = productoBL.GetProducto(model.InventarioId); FACT_FACTURA_DETALLE dbItem = new FACT_FACTURA_DETALLE { Id = model.Id, FacturaId = model.FacturaId, InventarioId = model.InventarioId, Cant = model.Cant, Subtotal = producto.Data.Valor * model.Cant, Estregistro = 1, }; db.FACT_FACTURA_DETALLE.Attach(dbItem); db.Entry(dbItem).State = EntityState.Added; db.SaveChanges(); var result = UpdTotalFactura(model.FacturaId); if (!result.Success) { return(jresult.SetError(null, "Error actualizando total factura", this.GetType().Name)); } model.Id = dbItem.Id; model.Estregistro = 1; jresult.Data = model; #region Salida Generica OK return(jresult.SetOk("Registro creado correctamente")); #endregion } #region Salida generica para errores catch (Exception ex) { return(jresult.SetError(ex, "Error registrando datos", this.GetType().Name)); } #endregion }
// POST: api/FacturaDetalle public IHttpActionResult Post([FromBody] FacturaDetalleViewModel model) { // Validation logic errors BL.ValidacionUnique(model); if (BL.jresult.hasError()) { return(Json(BL.jresult)); } // Normal fluent var jresult = BL.InsFacturaDetalle(model); if (jresult.Success) { return(Ok(jresult)); } else { // Internal errors return(Json(jresult)); } }
public JResult UpdFacturaDetalle(FacturaDetalleViewModel model) { try { ProductoBL productoBL = new ProductoBL(); var producto = productoBL.GetProducto(model.InventarioId); var dbItem = db.FACT_FACTURA_DETALLE.Find(model.Id); dbItem.Id = model.Id; dbItem.FacturaId = model.FacturaId; dbItem.InventarioId = model.InventarioId; dbItem.Cant = model.Cant; dbItem.Subtotal = producto.Data.Valor * model.Cant; dbItem.Estregistro = model.Estregistro; db.FACT_FACTURA_DETALLE.Attach(dbItem); db.Entry(dbItem).State = EntityState.Modified; db.SaveChanges(); var result = UpdTotalFactura(model.FacturaId); if (!result.Success) { return(jresult.SetError(null, "Error actualizando total factura", this.GetType().Name)); } #region Salida Generica OK return(jresult.SetOk()); #endregion } #region Salida generica para errores catch (Exception ex) { return(jresult.SetError(ex, "Error registrando datos", this.GetType().Name)); } #endregion }
public TbFdFacturaDetalle ViewModelToDomainSingleFD(FacturaDetalleViewModel viewModel, FacturaViewModel factura) { var domain = new TbFdFacturaDetalle { FechaCreacion = viewModel.FechaCreacion, FechaVencimiento = viewModel.FechaVencimiento, Id = viewModel.Id, IdFactura = viewModel.IdFactura, IdInventario = viewModel.IdInventario, IdUsuarioCreador = viewModel.IdUsuarioCreador, Cantidad = viewModel.Cantidad, PorcDescuento = viewModel.PorcDescuento, PorcIva = viewModel.PorcIva, PorcExoneracion = viewModel.PorcExoneracion }; float dolar = (float)factura.TipoCambioDolar; float euro = (float)factura.TipoCambioEuro; if (viewModel.IdMonedaFD == 1) { domain.PrecioBase = viewModel.Precio; domain.PrecioDolar = domain.PrecioBase / dolar; domain.PrecioEuro = domain.PrecioBase / euro; domain.SubTotalBase = viewModel.SubTotal; domain.SubTotalDolar = domain.SubTotalBase / dolar; domain.SubTotalEuro = domain.SubTotalBase / euro; domain.SubTotalExcentoBase = viewModel.SubTotalExcento; domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar; domain.SubTotalExcentoEuro = domain.SubTotalExcentoBase / euro; domain.SubTotalExcentoNetoBase = viewModel.SubTotalExcentoNeto; domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar; domain.SubTotalExcentoNetoEuro = domain.SubTotalExcentoNetoBase / euro; domain.SubTotalGravadoBase = viewModel.SubTotalGravado; domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar; domain.SubTotalGravadoEuro = domain.SubTotalGravadoBase / euro; domain.SubTotalGravadoNetoBase = viewModel.SubTotalGravadoNeto; domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar; domain.SubTotalGravadoNetoEuro = domain.SubTotalGravadoNetoBase / euro; domain.MontoIvabase = viewModel.MontoIva; domain.MontoIvadolar = domain.MontoIvabase / dolar; domain.MontoIvaeuro = domain.MontoIvabase / euro; domain.TotalBase = viewModel.Total; domain.TotalDolar = domain.TotalBase / dolar; domain.TotalEuro = domain.TotalBase / euro; domain.MontoDescuentoBase = viewModel.MontoDescuento; domain.MontoDescuentoDolar = viewModel.MontoDescuento / dolar; domain.MontoDescuentoEuro = viewModel.MontoDescuento / euro; domain.MontoExoneracionBase = viewModel.MontoExoneracion; domain.MontoExoneracionDolar = viewModel.MontoExoneracion / dolar; domain.MontoExoneracionEuro = viewModel.MontoExoneracion / euro; } else if (viewModel.IdMonedaFD == 2) { domain.PrecioBase = viewModel.Precio * dolar; domain.PrecioDolar = viewModel.Precio; domain.PrecioEuro = domain.PrecioBase / euro; domain.SubTotalBase = viewModel.SubTotal * dolar; domain.SubTotalDolar = viewModel.SubTotal; domain.SubTotalEuro = domain.SubTotalBase / euro; domain.SubTotalExcentoBase = viewModel.SubTotalExcento * dolar; domain.SubTotalExcentoDolar = viewModel.SubTotalExcento; domain.SubTotalExcentoEuro = domain.SubTotalExcentoBase / euro; domain.SubTotalExcentoNetoBase = viewModel.SubTotalExcentoNeto * dolar; domain.SubTotalExcentoNetoDolar = viewModel.SubTotalExcentoNeto; domain.SubTotalExcentoNetoEuro = domain.SubTotalExcentoNetoBase / euro; domain.SubTotalGravadoBase = viewModel.SubTotalGravado * dolar; domain.SubTotalGravadoDolar = viewModel.SubTotalGravado; domain.SubTotalGravadoEuro = domain.SubTotalGravadoBase / euro; domain.SubTotalGravadoNetoBase = viewModel.SubTotalGravadoNeto * dolar; domain.SubTotalGravadoNetoDolar = viewModel.SubTotalGravadoNeto; domain.SubTotalGravadoNetoEuro = domain.SubTotalGravadoNetoBase / euro; domain.MontoIvabase = viewModel.MontoIva * dolar; domain.MontoIvadolar = viewModel.MontoIva; domain.MontoIvaeuro = domain.MontoIvabase / euro; domain.TotalBase = viewModel.Total * dolar; domain.TotalDolar = viewModel.Total; domain.TotalEuro = domain.TotalBase / euro; domain.MontoDescuentoBase = viewModel.MontoDescuento * dolar; domain.MontoDescuentoDolar = viewModel.MontoDescuento; domain.MontoDescuentoEuro = domain.MontoDescuentoBase / euro; domain.MontoExoneracionBase = viewModel.MontoExoneracion * dolar; domain.MontoExoneracionDolar = viewModel.MontoExoneracion; domain.MontoExoneracionEuro = domain.MontoExoneracionBase / euro; } else if (viewModel.IdMonedaFD == 3) { domain.PrecioBase = viewModel.Precio * euro; domain.PrecioDolar = domain.PrecioBase / dolar; domain.PrecioEuro = viewModel.Precio; domain.SubTotalBase = viewModel.SubTotal * euro; domain.SubTotalDolar = domain.SubTotalBase / dolar; domain.SubTotalEuro = viewModel.SubTotal; domain.SubTotalExcentoBase = viewModel.SubTotalExcento * euro; domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar; domain.SubTotalExcentoEuro = viewModel.SubTotalExcento; domain.SubTotalExcentoNetoBase = viewModel.SubTotalExcentoNeto * euro; domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar; domain.SubTotalExcentoNetoEuro = viewModel.SubTotalExcentoNeto; domain.SubTotalGravadoBase = viewModel.SubTotalGravado * euro; domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar; domain.SubTotalGravadoEuro = viewModel.SubTotalGravado; domain.SubTotalGravadoNetoBase = viewModel.SubTotalGravadoNeto * euro; domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar; domain.SubTotalGravadoNetoEuro = viewModel.SubTotalGravadoNeto; domain.MontoIvabase = viewModel.MontoIva * euro; domain.MontoIvadolar = domain.MontoIvabase / dolar; domain.MontoIvaeuro = viewModel.MontoIva; domain.TotalBase = viewModel.Total * euro; domain.TotalDolar = domain.TotalBase / dolar; domain.TotalEuro = viewModel.Total; domain.MontoDescuentoBase = viewModel.MontoDescuento * euro; domain.MontoDescuentoDolar = domain.MontoDescuentoBase / dolar; domain.MontoDescuentoEuro = viewModel.MontoDescuento; domain.MontoExoneracionBase = viewModel.MontoExoneracion * euro; domain.MontoExoneracionDolar = domain.MontoExoneracionBase / dolar; domain.MontoExoneracionEuro = viewModel.MontoExoneracion; } return(domain); }