public DtoLib.Resultado Configuracion_SetBusquedaPredeterminada(DtoLibInventario.Configuracion.BusquedaPredeterminada.Editar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var ent = cnn.sistema_configuracion.FirstOrDefault(f => f.codigo == "GLOBAL03");
                    if (ent == null)
                    {
                        result.Mensaje = "[ ID ] CONFIGURACION NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }
                    ent.usuario = ficha.Busqueda;
                    cnn.SaveChanges();
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#2
0
        public DtoLib.Resultado Departamento_Editar(DtoLibInventario.Departamento.Editar ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = cnn.empresa_departamentos.Find(ficha.auto);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] ENTIDAD DEPARTAMENTOS NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        ent.codigo = ficha.codigo;
                        ent.nombre = ficha.nombre;
                        cnn.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            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)
                        {
                            result.Mensaje = "REGISTRO CONTIENE DATA RELACIONADA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (exx.Number == 1062)
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#3
0
        public DtoLib.Resultado EmpaqueMedida_Editar(DtoLibInventario.EmpaqueMedida.Editar ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = cnn.productos_medida.Find(ficha.auto);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] ENTIDAD EMPAQUE/MEDIDA NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        ent.nombre    = ficha.nombre;
                        ent.decimales = ficha.decimales;
                        cnn.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            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)
                        {
                            result.Mensaje = "REGISTRO CONTIENE DATA RELACIONADA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (exx.Number == 1062)
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#4
0
        public DtoLib.Resultado Departamento_Eliminar(string auto)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var ent = cnn.empresa_departamentos.Find(auto);
                    if (ent == null)
                    {
                        result.Mensaje = "[ ID ] DEPARTAMENTO NO ENCONTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }
                    ;
                    cnn.empresa_departamentos.Remove(ent);
                    cnn.SaveChanges();
                }
            }
            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)
                        {
                            result.Mensaje = "REGISTRO CONTIENE DATA RELACIONADA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#5
0
        public DtoLib.ResultadoAuto Departamento_Agregar(DtoLibInventario.Departamento.Agregar ficha)
        {
            var result = new DtoLib.ResultadoAuto();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var sql = "update sistema_contadores set a_empresa_departamentos=a_empresa_departamentos+1";
                        var r1  = cnn.Database.ExecuteSqlCommand(sql);
                        if (r1 == 0)
                        {
                            result.Mensaje = "PROBLEMA AL ACTUALIZAR TABLA CONTADORES";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        var aEmpresaDepart    = cnn.Database.SqlQuery <int>("select a_empresa_departamentos from sistema_contadores").FirstOrDefault();
                        var autoEmpresaDepart = aEmpresaDepart.ToString().Trim().PadLeft(10, '0');

                        var ent = new empresa_departamentos()
                        {
                            auto   = autoEmpresaDepart,
                            nombre = ficha.nombre,
                            codigo = ficha.codigo,
                        };
                        cnn.empresa_departamentos.Add(ent);
                        cnn.SaveChanges();

                        ts.Complete();
                        result.Auto = autoEmpresaDepart;
                    }
                }
            }
            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)
                        {
                            result.Mensaje = "REGISTRO CONTIENE DATA RELACIONADA";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        if (exx.Number == 1062)
                        {
                            result.Mensaje = exx.Message;
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                    }
                }
                result.Mensaje = ex.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.Resultado Usuario_ActualizarSesion(DtoLibInventario.Usuario.ActualizarSesion.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();

                        var ent = cnn.usuarios.Find(ficha.autoUsu);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] USUARIO NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        ent.fecha_sesion = fechaSistema.Date;
                        cnn.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.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();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.Resultado Tools_AjusteNivelMinimoMaximo_Ajustar(List <DtoLibInventario.Tool.AjusteNivelMinimoMaximo.Ajustar.Ficha> listaAjuste)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        foreach (var it in  listaAjuste)
                        {
                            var entPrdDep = cnn.productos_deposito.FirstOrDefault(f => f.auto_producto == it.autoProducto &&
                                                                                  f.auto_deposito == it.autoDeposito);
                            if (entPrdDep == null)
                            {
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                result.Mensaje = "[ ID ] PRODUCTO / DEPOSITO NO ENCONTRADO";
                                return(result);
                            }
                            entPrdDep.nivel_minimo = it.nivelMinimo;
                            entPrdDep.nivel_optimo = it.nivelOptimo;
                            cnn.SaveChanges();
                        }
                        ;

                        ts.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.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();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }
        public DtoLib.Resultado Configuracion_SetMetodoCalculoUtilidad(DtoLibInventario.Configuracion.MetodoCalculoUtilidad.Editar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = cnn.Database.BeginTransaction())
                    {
                        var ent = cnn.sistema_configuracion.FirstOrDefault(f => f.codigo == "GLOBAL13");
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] CONFIGURACION NO ENCONTRADO";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        ent.usuario = ficha.Metodo;
                        cnn.SaveChanges();

                        var sql  = @"update productos set precio_1=@p1, precio_2=@p2, precio_3=@p3, precio_4=@p4, precio_pto=@p5,
                                    pdf_1=@pd1, pdf_2=@pd2, pdf_3=@pd3, pdf_4=@pd4, pdf_pto=@pd5 where auto=@auto";
                        var p1   = new MySql.Data.MySqlClient.MySqlParameter();
                        var p2   = new MySql.Data.MySqlClient.MySqlParameter();
                        var p3   = new MySql.Data.MySqlClient.MySqlParameter();
                        var p4   = new MySql.Data.MySqlClient.MySqlParameter();
                        var p5   = new MySql.Data.MySqlClient.MySqlParameter();
                        var pd1  = new MySql.Data.MySqlClient.MySqlParameter();
                        var pd2  = new MySql.Data.MySqlClient.MySqlParameter();
                        var pd3  = new MySql.Data.MySqlClient.MySqlParameter();
                        var pd4  = new MySql.Data.MySqlClient.MySqlParameter();
                        var pd5  = new MySql.Data.MySqlClient.MySqlParameter();
                        var auto = new MySql.Data.MySqlClient.MySqlParameter();
                        p1.ParameterName   = "@p1";
                        p2.ParameterName   = "@p2";
                        p3.ParameterName   = "@p3";
                        p4.ParameterName   = "@p4";
                        p5.ParameterName   = "@p5";
                        pd1.ParameterName  = "@pd1";
                        pd2.ParameterName  = "@pd2";
                        pd3.ParameterName  = "@pd3";
                        pd4.ParameterName  = "@pd4";
                        pd5.ParameterName  = "@pd5";
                        auto.ParameterName = "@auto";

                        foreach (var it in ficha.Precio)
                        {
                            p1.Value   = it.Precio_1.pneto;
                            p2.Value   = it.Precio_2.pneto;
                            p3.Value   = it.Precio_3.pneto;
                            p4.Value   = it.Precio_4.pneto;
                            p5.Value   = it.Precio_5.pneto;
                            pd1.Value  = it.Precio_1.pdf;
                            pd2.Value  = it.Precio_2.pdf;
                            pd3.Value  = it.Precio_3.pdf;
                            pd4.Value  = it.Precio_4.pdf;
                            pd5.Value  = it.Precio_5.pdf;
                            auto.Value = it.idProducto;
                            var xsql = cnn.Database.ExecuteSqlCommand(sql, p1, p2, p3, p4, p5, pd1, pd2, pd3, pd4, pd5, auto);
                            if (xsql == 0)
                            {
                                result.Mensaje = "[ ID ] PRODUCTO NO ENCONTRADO";
                                result.Result  = DtoLib.Enumerados.EnumResult.isError;
                                return(result);
                            }

                            //var entPrd = cnn.productos.Find(it.idProducto);
                            //if (entPrd == null)
                            //{
                            //    result.Mensaje = "[ ID ] PRODUCTO NO ENCONTRADO";
                            //    result.Result = DtoLib.Enumerados.EnumResult.isError;
                            //    return result;
                            //}

                            //entPrd.precio_1 = it.Precio_1.pneto;
                            //entPrd.pdf_1 = it.Precio_1.pdf;
                            //entPrd.precio_2 = it.Precio_2.pneto;
                            //entPrd.pdf_2 = it.Precio_2.pdf;
                            //entPrd.precio_3 = it.Precio_3.pneto;
                            //entPrd.pdf_3 = it.Precio_3.pdf;
                            //entPrd.precio_4 = it.Precio_4.pneto;
                            //entPrd.pdf_4 = it.Precio_4.pdf;
                            //entPrd.precio_pto = it.Precio_5.pneto;
                            //entPrd.pdf_pto = it.Precio_5.pdf;
                            //cnn.SaveChanges();
                        }
                        ts.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
        public DtoLib.Resultado CostoProducto_Actualizar(DtoLibInventario.Costo.Editar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var entPrd       = cnn.productos.Find(ficha.autoProducto);
                        if (entPrd == null)
                        {
                            result.Mensaje = "[ ID ] Producto, No Encontrado";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        entPrd.costo_proveedor       = ficha.costoProveedor;
                        entPrd.costo_proveedor_und   = ficha.costoProveedorUnd;
                        entPrd.costo_importacion     = ficha.costoImportacion;
                        entPrd.costo_importacion_und = ficha.costoImportacionUnd;
                        entPrd.costo_varios          = ficha.costoVario;
                        entPrd.costo_varios_und      = ficha.costoVarioUnd;
                        entPrd.costo              = ficha.costoFinal;
                        entPrd.costo_und          = ficha.costoFinalUnd;
                        entPrd.costo_promedio     = ficha.costoPromedio;
                        entPrd.costo_promedio_und = ficha.costoPromedioUnd;
                        entPrd.divisa             = ficha.costoDivisa;
                        entPrd.fecha_ult_costo    = fechaSistema.Date;
                        entPrd.fecha_cambio       = fechaSistema.Date;
                        if (ficha.precio != null)
                        {
                            entPrd.precio_1     = ficha.precio.pn1;
                            entPrd.precio_2     = ficha.precio.pn2;
                            entPrd.precio_3     = ficha.precio.pn3;
                            entPrd.precio_4     = ficha.precio.pn4;
                            entPrd.precio_pto   = ficha.precio.pn5;
                            entPrd.utilidad_1   = ficha.precio.ut1;
                            entPrd.utilidad_2   = ficha.precio.ut2;
                            entPrd.utilidad_3   = ficha.precio.ut3;
                            entPrd.utilidad_4   = ficha.precio.ut4;
                            entPrd.utilidad_pto = ficha.precio.ut5;
                        }
                        cnn.SaveChanges();

                        var entHist = new productos_costos()
                        {
                            auto_producto = ficha.autoProducto,
                            costo         = ficha.historia.costo,
                            costo_divisa  = ficha.historia.divisa,
                            divisa        = ficha.historia.tasaCambio,
                            documento     = ficha.historia.documento,
                            estacion      = ficha.estacion,
                            fecha         = fechaSistema.Date,
                            hora          = fechaSistema.ToShortTimeString(),
                            nota          = ficha.historia.nota,
                            serie         = ficha.historia.serie,
                            usuario       = ficha.nombreUsuario,
                        };
                        cnn.productos_costos.Add(entHist);
                        cnn.SaveChanges();

                        ts.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.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();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }
示例#10
0
        Transito_Movimiento_Agregar(DtoLibInventario.Transito.Movimiento.Agregar.Ficha ficha)
        {
            var result = new DtoLib.ResultadoId();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var s            = ficha.mov;
                        var entMov       = new productos_movimientos_transito()
                        {
                            autoriza       = s.autoriza,
                            cntRenglones   = s.cntRenglones,
                            codigoMov      = s.codigoMov,
                            desConcepto    = s.descConcepto,
                            desDepDestino  = s.descDepDestino,
                            desDepOrigen   = s.descDepOrigen,
                            desMov         = s.descMov,
                            desSucDestino  = s.descSucDestino,
                            desSucOrigen   = s.descSucOrigen,
                            desUsuario     = s.descUsuario,
                            estacionEquipo = s.estacionEquipo,
                            factorCambio   = s.factorCambio,
                            fecha          = fechaSistema.Date,
                            idConcepto     = s.idConcepto,
                            idDepDestino   = s.idDepDestino,
                            idDepOrigen    = s.idDeOrigen,
                            idSucDestino   = s.idSucDestino,
                            idSucOrigen    = s.idSucOrigen,
                            monto          = s.monto,
                            montoDivisa    = s.montoDivisa,
                            motivo         = s.motivo,
                            tipoMov        = s.tipoMov,
                        };
                        cnn.productos_movimientos_transito.Add(entMov);
                        cnn.SaveChanges();

                        foreach (var rg in ficha.detalles)
                        {
                            var det = new productos_movimientos_transito_detalle()
                            {
                                idTransito       = entMov.id,
                                autoDepart       = rg.autoDepart,
                                autoGrupo        = rg.autoGrupo,
                                autoProd         = rg.autoPrd,
                                autoTasa         = rg.autoTasa,
                                categoriaProd    = rg.catPrd,
                                codigoProd       = rg.codigoPrd,
                                contEmpaque      = rg.contEmp,
                                costo            = rg.costo,
                                costoUnd         = rg.costoUnd,
                                costoDivisa      = rg.costoDivisa,
                                costoDivisaUnd   = rg.costoDivisaUnd,
                                decimales        = rg.decimales,
                                descEmpaque      = rg.nombreEmp,
                                descTasa         = rg.descTasa,
                                esAdmDivisa      = rg.estatusDivisa,
                                exFisica         = rg.exFisica,
                                fechaUltActCosto = rg.fechaUltActCosto,
                                nombreProd       = rg.nombrePrd,
                                valorTasa        = rg.valorTasa,
                                exFisicaDestino  = rg.exFisicaDestino,
                                nivelMinimo      = rg.nivelMinimo,
                                nivelOptimo      = rg.nivelOptimo,
                                //
                                cantSolicitada      = rg.cantidadSolicitada,
                                costoSolicitado     = rg.costoSolicitada,
                                empaqueIdSolicitado = rg.empaqueIdSolicitada,
                                ajusteIdSolicitado  = rg.ajusteIdSolicitada,
                            };
                            cnn.productos_movimientos_transito_detalle.Add(det);
                            cnn.SaveChanges();
                        }

                        ts.Complete();
                        result.Id = entMov.id;
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.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();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }
        public DtoLib.Resultado PrecioProducto_Actualizar(DtoLibInventario.Precio.Editar.Ficha ficha)
        {
            var result = new DtoLib.Resultado();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var fechaSistema = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                        var entPrd       = cnn.productos.Find(ficha.autoProducto);
                        if (entPrd == null)
                        {
                            result.Mensaje = "[ ID ] Producto, No Encontrado";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }
                        var entPrdExt = cnn.productos_ext.Find(ficha.autoProducto);
                        if (entPrdExt == null)
                        {
                            result.Mensaje = "[ ID ] Producto Precios Mayor, No Encontrado";
                            result.Result  = DtoLib.Enumerados.EnumResult.isError;
                            return(result);
                        }

                        entPrd.fecha_cambio = fechaSistema.Date;
                        //
                        entPrd.auto_precio_1 = ficha.precio_1.autoEmp;
                        entPrd.precio_1      = ficha.precio_1.precioNeto;
                        entPrd.utilidad_1    = ficha.precio_1.utilidad;
                        entPrd.pdf_1         = ficha.precio_1.precio_divisa_Neto;
                        entPrd.contenido_1   = ficha.precio_1.contenido;
                        //
                        entPrd.auto_precio_2 = ficha.precio_2.autoEmp;
                        entPrd.precio_2      = ficha.precio_2.precioNeto;
                        entPrd.utilidad_2    = ficha.precio_2.utilidad;
                        entPrd.pdf_2         = ficha.precio_2.precio_divisa_Neto;
                        entPrd.contenido_2   = ficha.precio_2.contenido;
                        //
                        entPrd.auto_precio_3 = ficha.precio_3.autoEmp;
                        entPrd.precio_3      = ficha.precio_3.precioNeto;
                        entPrd.utilidad_3    = ficha.precio_3.utilidad;
                        entPrd.pdf_3         = ficha.precio_3.precio_divisa_Neto;
                        entPrd.contenido_3   = ficha.precio_3.contenido;
                        //
                        entPrd.auto_precio_4 = ficha.precio_4.autoEmp;
                        entPrd.precio_4      = ficha.precio_4.precioNeto;
                        entPrd.utilidad_4    = ficha.precio_4.utilidad;
                        entPrd.pdf_4         = ficha.precio_4.precio_divisa_Neto;
                        entPrd.contenido_4   = ficha.precio_4.contenido;
                        //
                        entPrd.auto_precio_pto = ficha.precio_5.autoEmp;
                        entPrd.precio_pto      = ficha.precio_5.precioNeto;
                        entPrd.utilidad_pto    = ficha.precio_5.utilidad;
                        entPrd.pdf_pto         = ficha.precio_5.precio_divisa_Neto;
                        entPrd.contenido_pto   = ficha.precio_5.contenido;
                        cnn.SaveChanges();

                        //
                        entPrdExt.auto_precio_may_1 = ficha.may_1.autoEmp;
                        entPrdExt.precio_may_1      = ficha.may_1.precioNeto;
                        entPrdExt.utilidad_may_1    = ficha.may_1.utilidad;
                        entPrdExt.pdmf_1            = ficha.may_1.precio_divisa_Neto;
                        entPrdExt.contenido_may_1   = ficha.may_1.contenido;
                        //
                        entPrdExt.auto_precio_may_2 = ficha.may_2.autoEmp;
                        entPrdExt.precio_may_2      = ficha.may_2.precioNeto;
                        entPrdExt.utilidad_may_2    = ficha.may_2.utilidad;
                        entPrdExt.pdmf_2            = ficha.may_2.precio_divisa_Neto;
                        entPrdExt.contenido_may_2   = ficha.may_2.contenido;
                        //
                        cnn.SaveChanges();

                        foreach (var it in ficha.historia)
                        {
                            var entHist = new productos_precios()
                            {
                                auto_producto = ficha.autoProducto,
                                estacion      = ficha.estacion,
                                fecha         = fechaSistema.Date,
                                hora          = fechaSistema.ToShortTimeString(),
                                usuario       = ficha.nombreUsuario,
                                nota          = it.nota,
                                precio        = it.precio,
                                precio_id     = it.precio_id,
                            };
                            cnn.productos_precios.Add(entHist);
                            cnn.SaveChanges();

                            var entHistExt = new productos_precios_ext()
                            {
                                contenido          = it.contenido,
                                empaque            = it.empaque,
                                id_producto_precio = entHist.id,
                            };
                            cnn.productos_precios_ext.Add(entHistExt);
                            cnn.SaveChanges();
                        }

                        ts.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        msg += ve.ErrorMessage;
                    }
                }
                result.Mensaje = msg;
                result.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();
                    }
                }
                result.Mensaje = msg;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }
            return(result);
        }