public OOB.Resultado ReconversionMonetaria_Actualizar(OOB.LibSistema.ReconversionMonetaria.Actualizar.Ficha ficha) { var rt = new OOB.Resultado(); var fichaDTO = new DtoLibSistema.ReconversionMonetaria.Actualizar.Ficha() { codUsuario = ficha.codUsuario, equipoEstacion = ficha.equipoEstacion, factorReconverion = ficha.factorReconverion, idUsuario = ficha.idUsuario, tasaDivisa = ficha.tasaDivisa, tasaDivisaPos = ficha.tasaDivisaPos, usuario = ficha.usuario, Producto = ficha.Producto.Select(s => { var prd = new DtoLibSistema.ReconversionMonetaria.Actualizar.ItemPrd() { autoId = s.autoId, nombre = s.nombre, costo = s.costo, costoProm = s.costoProm, costoPrv = s.costoPrv, costoUnd = s.costoUnd, costoPromUnd = s.costoPromUnd, costoPrvUnd = s.costoPrvUnd, precio1 = s.precio1, precio2 = s.precio2, precio3 = s.precio3, precio4 = s.precio4, precio5 = s.precio5, }; return(prd); }).ToList(), Proveedor = ficha.Proveedor.Select(s => { var prv = new DtoLibSistema.ReconversionMonetaria.Actualizar.ItemProv() { autoId = s.autoId, nombre = s.nombre, anticipos = s.anticipos, debitos = s.debitos, creditos = s.creditos, saldo = s.saldo, disponible = s.disponible, }; return(prv); }).ToList(), SaldoPorPagar = ficha.SaldoPorPagar.Select(s => { var cxp = new DtoLibSistema.ReconversionMonetaria.Actualizar.ItemSaldoPorPagar() { autoDoc = s.autoDoc, docNumero = s.docNumero, importe = s.importe, acumulado = s.acumulado, resta = s.resta, }; return(cxp); }).ToList(), HistoricoCosto = ficha.HistoricoCosto.Select(s => { var cost = new DtoLibSistema.ReconversionMonetaria.Actualizar.ItemHistCosto() { autoPrd = s.autoPrd, costo = s.costo, costoDivisa = s.costoDivisa, documento = s.documento, estacionEquipo = s.estacionEquipo, nota = s.nota, serie = s.serie, tasaDivisa = s.tasaDivisa, usuario = s.usuario, }; return(cost); }).ToList(), HistoricoPrecio = ficha.HistoricoPrecio.Select(s => { var prec = new DtoLibSistema.ReconversionMonetaria.Actualizar.ItemHistPrecio() { autoPrd = s.autoPrd, estacionEquipo = s.estacionEquipo, idPrecio = s.idPrecio, nota = s.nota, precio = s.precio, usuario = s.usuario, }; return(prec); }).ToList(), }; var r01 = MyData.ReconversionMonetaria_Actualizar(fichaDTO); if (r01.Result == DtoLib.Enumerados.EnumResult.isError) { rt.Mensaje = r01.Mensaje; rt.Result = OOB.Enumerados.EnumResult.isError; return(rt); } return(rt); }
public DtoLib.Resultado ReconversionMonetaria_Actualizar(DtoLibSistema.ReconversionMonetaria.Actualizar.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" + Environment.NewLine + "TASA DIVISA"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } ent.usuario = ficha.tasaDivisa.ToString(); cnn.SaveChanges(); var entTasaPos = cnn.sistema_configuracion.FirstOrDefault(f => f.codigo == "GLOBAL48"); if (entTasaPos == null) { rt.Mensaje = "[ ID ] CONFIGURACION NO ENCONTRADO" + Environment.NewLine + "TASA DIVISA POS"; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entTasaPos.usuario = ficha.tasaDivisaPos.ToString(); cnn.SaveChanges(); var entRec = new reconversion_monetaria() { fecha = fechaSistema.Date, hora = fechaSistema.ToShortTimeString(), factor_reconversion = ficha.factorReconverion, factor_divisa = ficha.tasaDivisa, usuario = ficha.usuario, codigo_usuario = ficha.codUsuario, idUsuario = ficha.idUsuario, equipo_estacion = ficha.equipoEstacion, items_afectados = ficha.ItemsAfectados, proveedores_afectados = ficha.ProvAfectados, saldos_por_pagar_afectados = ficha.SaldoPorPagarAfectados, }; cnn.reconversion_monetaria.Add(entRec); cnn.SaveChanges(); foreach (var rg in ficha.Producto) { var entPrd = cnn.productos.Find(rg.autoId); if (entPrd == null) { rt.Mensaje = "[ ID ] Producto No Encontrado: " + rg.autoId + Environment.NewLine + rg.nombre; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entPrd.costo_proveedor = rg.costoPrv; entPrd.costo_proveedor_und = rg.costoPrvUnd; entPrd.costo_promedio = rg.costoProm; entPrd.costo_promedio_und = rg.costoPromUnd; entPrd.costo = rg.costo; entPrd.costo_und = rg.costoUnd; entPrd.fecha_cambio = fechaSistema.Date; entPrd.precio_1 = rg.precio1; entPrd.precio_2 = rg.precio2; entPrd.precio_3 = rg.precio3; entPrd.precio_4 = rg.precio4; entPrd.precio_pto = rg.precio5; cnn.SaveChanges(); } foreach (var rg in ficha.Proveedor) { var entPrv = cnn.proveedores.Find(rg.autoId); if (entPrv == null) { rt.Mensaje = "[ ID ] Proveedor No Encontrado: " + rg.autoId + Environment.NewLine + rg.nombre; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entPrv.anticipos = rg.anticipos; entPrv.debitos = rg.debitos; entPrv.creditos = rg.creditos; entPrv.saldo = rg.saldo; entPrv.disponible = rg.disponible; cnn.SaveChanges(); } foreach (var rg in ficha.SaldoPorPagar) { var entCxP = cnn.cxp.Find(rg.autoDoc); if (entCxP == null) { rt.Mensaje = "[ ID ] Saldo Por Pagar No Encontrado: " + rg.autoDoc + Environment.NewLine + rg.docNumero; rt.Result = DtoLib.Enumerados.EnumResult.isError; return(rt); } entCxP.importe = rg.importe; entCxP.acumulado = rg.acumulado; entCxP.resta = rg.resta; cnn.SaveChanges(); } cnn.Configuration.AutoDetectChangesEnabled = false; var lentHist = new List <productos_costos>(); foreach (var rg in ficha.HistoricoCosto) { var entHist = new productos_costos() { auto_producto = rg.autoPrd, costo = rg.costo, costo_divisa = rg.costoDivisa, divisa = rg.tasaDivisa, documento = rg.documento, estacion = rg.estacionEquipo, fecha = fechaSistema.Date, hora = fechaSistema.ToShortTimeString(), nota = rg.nota, serie = rg.serie, usuario = rg.usuario, }; lentHist.Add(entHist); } cnn.productos_costos.AddRange(lentHist); cnn.SaveChanges(); var lentHist_2 = new List <productos_precios>(); foreach (var rg in ficha.HistoricoPrecio) { var entHist = new productos_precios() { auto_producto = rg.autoPrd, estacion = rg.estacionEquipo, fecha = fechaSistema.Date, hora = fechaSistema.ToShortTimeString(), usuario = rg.usuario, 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 (DbEntityValidationException e) { var msg = ""; foreach (var eve in e.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { msg += ve.ErrorMessage; } } rt.Mensaje = msg; rt.Result = DtoLib.Enumerados.EnumResult.isError; } catch (System.Data.Entity.Infrastructure.DbUpdateException e) { var msg = ""; foreach (var eve in e.Entries) { //msg += eve.m; foreach (var ve in eve.CurrentValues.PropertyNames) { msg += ve.ToString(); } } rt.Mensaje = msg; 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 ReconversionMonetaria_Actualizar(DtoLibSistema.ReconversionMonetaria.Actualizar.Ficha ficha) { return(ServiceProv.ReconversionMonetaria_Actualizar(ficha)); }