public DtoLib.Resultado Configuracion_Actualizar_TasaDivisa_ActualizarData(DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.Ficha ficha) { var rt = new DtoLib.Resultado(); try { using (var cnn = new sistemaEntities(_cnSist.ConnectionString)) { using (var ts = cnn.Database.BeginTransaction()) { try { var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault(); var ent = cnn.sistema_configuracion.FirstOrDefault(f => f.codigo == "GLOBAL12"); if (ent == null) { rt.Mensaje = "[ ID ] CONFIGURACION NO ENCONTRADO"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } ent.usuario = ficha.ValorDivisa.ToString(); cnn.SaveChanges(); foreach (var rg in ficha.productosCostoSinDivisa) { var entPrd = cnn.productos.Find(rg.autoPrd); if (entPrd == null) { rt.Mensaje = "[ ID ] Producto, No Encontrado"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entPrd.divisa = rg.costoDivisa; entPrd.pdf_1 = rg.precioMonedaEnDivisaFull_1; entPrd.pdf_2 = rg.precioMonedaEnDivisaFull_2; entPrd.pdf_3 = rg.precioMonedaEnDivisaFull_3; entPrd.pdf_4 = rg.precioMonedaEnDivisaFull_4; entPrd.pdf_pto = rg.precioMonedaEnDivisaFull_5; cnn.SaveChanges(); var entPrdExt = cnn.productos_ext.Find(rg.autoPrd); if (entPrdExt == null) { rt.Mensaje = "[ ID ] Producto, No Encontrado"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entPrdExt.pdmf_1 = rg.precioMonedaEnDivisaFull_May_1; entPrdExt.pdmf_2 = rg.precioMonedaEnDivisaFull_May_2; cnn.SaveChanges(); } foreach (var rg in ficha.productosCostoPrecioDivisa) { var p1 = new MySql.Data.MySqlClient.MySqlParameter("@costoProveedor", rg.costoProveedor); var p2 = new MySql.Data.MySqlClient.MySqlParameter("@costoProveedorUnd", rg.costoProveedorUnd); var p3 = new MySql.Data.MySqlClient.MySqlParameter("@costoImportacion", rg.costoImportacion); var p4 = new MySql.Data.MySqlClient.MySqlParameter("@costoImportacionUnd", rg.costoImportacionUnd); var p5 = new MySql.Data.MySqlClient.MySqlParameter("@costoVario", rg.costoVario); var p6 = new MySql.Data.MySqlClient.MySqlParameter("@costoVarioUnd", rg.costoVarioUnd); var p7 = new MySql.Data.MySqlClient.MySqlParameter("@costo", rg.costo); var p8 = new MySql.Data.MySqlClient.MySqlParameter("@costoUnd", rg.costoUnd); var p9 = new MySql.Data.MySqlClient.MySqlParameter("@fecha", fechaSistema.Date); var pa = new MySql.Data.MySqlClient.MySqlParameter("@precio_1", rg.precio_1); var pb = new MySql.Data.MySqlClient.MySqlParameter("@precio_2", rg.precio_2); var pc = new MySql.Data.MySqlClient.MySqlParameter("@precio_3", rg.precio_3); var pd = new MySql.Data.MySqlClient.MySqlParameter("@precio_4", rg.precio_4); var pe = new MySql.Data.MySqlClient.MySqlParameter("@precio_5", rg.precio_5); var pf = new MySql.Data.MySqlClient.MySqlParameter("@auto", rg.autoPrd); var sql = @"update productos set costo_proveedor=@costoProveedor, costo_proveedor_und = @costoProveedorUnd, costo_importacion = @costoImportacion, costo_importacion_und = @costoImportacionUnd, costo_varios = @costoVario, costo_varios_und = @costoVarioUnd, costo = @costo, costo_und = @costoUnd, fecha_ult_costo = @fecha, fecha_cambio = @fecha, precio_1 = @precio_1, precio_2 = @precio_2, precio_3 = @precio_3, precio_4 = @precio_4, precio_pto = @precio_5 where auto=@auto"; var i = cnn.Database.ExecuteSqlCommand(sql, p1, p2, p3, p4, p5, p6, p7, p8, p9, pa, pb, pc, pd, pe, pf); if (i == 0) { rt.Mensaje = "PROBLEMA AL ACTUALIZAR ITEM [" + rg.autoPrd + "]"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } var p11 = new MySql.Data.MySqlClient.MySqlParameter("@precio_may_1", rg.precioMay_1); var p22 = new MySql.Data.MySqlClient.MySqlParameter("@precio_may_2", rg.precioMay_2); var p33 = new MySql.Data.MySqlClient.MySqlParameter("@auto", rg.autoPrd); var sql2 = @"update productos_ext set precio_may_1 = @precio_may_1, precio_may_2 = @precio_may_2 where auto_producto=@auto"; var i2 = cnn.Database.ExecuteSqlCommand(sql2, p11, p22, p33); if (i2 == 0) { rt.Mensaje = "PROBLEMA AL ACTUALIZAR ITEM [" + rg.autoPrd + "]"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } } //foreach (var rg in ficha.productosCostoPrecioDivisa) //{ // var entPrd = cnn.productos.Find(rg.autoPrd); // if (entPrd == null) // { // rt.Mensaje = "[ ID ] Producto, No Encontrado"; // rt.Result = DtoLib.Enumerados.EnumResult.isError; // return rt; // } // entPrd.costo_proveedor = rg.costoProveedor; // entPrd.costo_proveedor_und = rg.costoProveedorUnd; // entPrd.costo_importacion = rg.costoImportacion; // entPrd.costo_importacion_und = rg.costoImportacionUnd; // entPrd.costo_varios = rg.costoVario; // entPrd.costo_varios_und = rg.costoVarioUnd; // entPrd.costo = rg.costo; // entPrd.costo_und = rg.costoUnd; // entPrd.fecha_ult_costo = fechaSistema.Date; // entPrd.fecha_cambio = fechaSistema.Date; // entPrd.precio_1 = rg.precio_1; // entPrd.precio_2 = rg.precio_2; // entPrd.precio_3 = rg.precio_3; // entPrd.precio_4 = rg.precio_4; // entPrd.precio_pto = rg.precio_5; // cnn.SaveChanges(); //} cnn.Configuration.AutoDetectChangesEnabled = false; var lentHist = new List <productos_costos>(); foreach (var rg in ficha.productosCostoPrecioDivisa) { var entHist = new productos_costos() { auto_producto = rg.autoPrd, costo = rg.costo, costo_divisa = rg.costoDivisa, divisa = ficha.ValorDivisa, documento = rg.documento, estacion = ficha.EstacionEquipo, fecha = fechaSistema.Date, hora = fechaSistema.ToShortTimeString(), nota = rg.nota, serie = rg.serie, usuario = ficha.nombreUsuario, }; lentHist.Add(entHist); } cnn.productos_costos.AddRange(lentHist); cnn.SaveChanges(); var lentHist_2 = new List <productos_precios>(); foreach (var rg in ficha.productosPrecioHistorico) { var entHist = new productos_precios() { auto_producto = rg.autoPrd, estacion = ficha.EstacionEquipo, fecha = fechaSistema.Date, hora = fechaSistema.ToShortTimeString(), usuario = ficha.nombreUsuario, nota = rg.nota, precio = rg.precio, precio_id = rg.idPrecio, }; lentHist_2.Add(entHist); } cnn.productos_precios.AddRange(lentHist_2); cnn.SaveChanges(); ts.Commit(); } catch (DbUpdateException ex) { var dbUpdateEx = ex as DbUpdateException; var sqlEx = dbUpdateEx.InnerException; if (sqlEx != null) { var exx = (MySql.Data.MySqlClient.MySqlException)sqlEx.InnerException; if (exx != null) { if (exx.Number == 1451) { rt.Mensaje = "REGISTRO CONTIENE DATA RELACIONADA"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } if (exx.Number == 1062) { rt.Mensaje = exx.Message; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } rt.Mensaje = exx.Message; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } } rt.Mensaje = ex.Message; rt.Result = DtoLib.Enumerados.EnumResult.isError; } finally { cnn.Configuration.AutoDetectChangesEnabled = false; } } } } catch (Exception e) { rt.Mensaje = e.Message; rt.Result = DtoLib.Enumerados.EnumResult.isError; } return(rt); }
public DtoLib.Resultado Configuracion_Actualizar_TasaDivisa_ActualizarData(DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.Ficha ficha) { return(ServiceProv.Configuracion_Actualizar_TasaDivisa_ActualizarData(ficha)); }
public OOB.Resultado Configuracion_Actualizar_TasaDivisa_ActualizarData(OOB.LibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.Ficha ficha) { var rt = new OOB.Resultado(); var fichaDTO = new DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.Ficha() { autoUsuario = ficha.autoUsuario, codigoUsuario = ficha.codigoUsuario, EstacionEquipo = ficha.EstacionEquipo, nombreUsuario = ficha.nombreUsuario, ValorDivisa = ficha.ValorDivisa, }; var lstProdCostoSinDivisa = new List <DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoCostoSinDivisa>(); foreach (var rg in ficha.productosCostoSinDivisa) { var nr = new DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoCostoSinDivisa() { autoPrd = rg.autoPrd, costoDivisa = rg.costoDivisa, precioMonedaEnDivisaFull_1 = rg.precioMonedaEnDivisaFull_1, precioMonedaEnDivisaFull_2 = rg.precioMonedaEnDivisaFull_2, precioMonedaEnDivisaFull_3 = rg.precioMonedaEnDivisaFull_3, precioMonedaEnDivisaFull_4 = rg.precioMonedaEnDivisaFull_4, precioMonedaEnDivisaFull_5 = rg.precioMonedaEnDivisaFull_5, precioMonedaEnDivisaFull_May_1 = rg.precioMonedaEnDivisaFull_May_1, precioMonedaEnDivisaFull_May_2 = rg.precioMonedaEnDivisaFull_May_2, }; lstProdCostoSinDivisa.Add(nr); } fichaDTO.productosCostoSinDivisa = lstProdCostoSinDivisa; var lstProdDivisaCostoPrecio = new List <DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoCostoPrecioDivisa>(); foreach (var rg in ficha.productosCostoPrecioDivisa) { var nr = new DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoCostoPrecioDivisa() { autoPrd = rg.autoPrd, costo = rg.costo, costoDivisa = rg.costoDivisa, costoImportacion = rg.costoImportacion, costoImportacionUnd = rg.costoImportacionUnd, costoProveedor = rg.costoProveedor, costoProveedorUnd = rg.costoProveedorUnd, costoUnd = rg.costoUnd, costoVario = rg.costoVario, costoVarioUnd = rg.costoVarioUnd, documento = rg.documento, nota = rg.nota, precio_1 = rg.precio_1, precio_2 = rg.precio_2, precio_3 = rg.precio_3, precio_4 = rg.precio_4, precio_5 = rg.precio_5, precioMay_1 = rg.precioMay_1, precioMay_2 = rg.precioMay_2, serie = rg.serie, }; lstProdDivisaCostoPrecio.Add(nr); } fichaDTO.productosCostoPrecioDivisa = lstProdDivisaCostoPrecio; var lstProdPrecioHistorico = new List <DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoPrecioHistorico>(); foreach (var rg in ficha.productosPrecioHistorico) { var nr = new DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.FichaProductoPrecioHistorico() { autoPrd = rg.autoPrd, idPrecio = rg.idPrecio, nota = rg.nota, precio = rg.precio, }; lstProdPrecioHistorico.Add(nr); } fichaDTO.productosPrecioHistorico = lstProdPrecioHistorico; var r01 = MyData.Configuracion_Actualizar_TasaDivisa_ActualizarData(fichaDTO); if (r01.Result == DtoLib.Enumerados.EnumResult.isError) { rt.Mensaje = r01.Mensaje; rt.Result = OOB.Enumerados.EnumResult.isError; return(rt); } return(rt); }