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);
        }
        public OOB.Resultado PrecioProducto_Actualizar(OOB.LibInventario.Precio.Editar.Ficha ficha)
        {
            var rt = new OOB.Resultado();

            var fichaDTO = new DtoLibInventario.Precio.Editar.Ficha()
            {
                autoProducto  = ficha.autoProducto,
                autoUsuario   = ficha.autoUsuario,
                codigoUsuario = ficha.codigoUsuario,
                estacion      = ficha.estacion,
                nombreUsuario = ficha.nombreUsuario,
            };

            var historia = new List <DtoLibInventario.Precio.Editar.FichaHistorica>();

            foreach (var it in ficha.historia)
            {
                var nr = new DtoLibInventario.Precio.Editar.FichaHistorica()
                {
                    nota      = it.nota,
                    precio    = it.precio,
                    precio_id = it.precio_id,
                    contenido = it.contenido,
                    empaque   = it.empaque,
                };
                historia.Add(nr);
            }
            fichaDTO.historia = historia;

            var precio_1 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.precio_1.autoEmp,
                contenido          = ficha.precio_1.contenido,
                precioNeto         = ficha.precio_1.precioNeto,
                precio_divisa_Neto = ficha.precio_1.precio_divisa_Neto,
                utilidad           = ficha.precio_1.utilidad,
            };

            fichaDTO.precio_1 = precio_1;
            var precio_2 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.precio_2.autoEmp,
                contenido          = ficha.precio_2.contenido,
                precioNeto         = ficha.precio_2.precioNeto,
                precio_divisa_Neto = ficha.precio_2.precio_divisa_Neto,
                utilidad           = ficha.precio_2.utilidad,
            };

            fichaDTO.precio_2 = precio_2;
            var precio_3 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.precio_3.autoEmp,
                contenido          = ficha.precio_3.contenido,
                precioNeto         = ficha.precio_3.precioNeto,
                precio_divisa_Neto = ficha.precio_3.precio_divisa_Neto,
                utilidad           = ficha.precio_3.utilidad,
            };

            fichaDTO.precio_3 = precio_3;
            var precio_4 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.precio_4.autoEmp,
                contenido          = ficha.precio_4.contenido,
                precioNeto         = ficha.precio_4.precioNeto,
                precio_divisa_Neto = ficha.precio_4.precio_divisa_Neto,
                utilidad           = ficha.precio_4.utilidad,
            };

            fichaDTO.precio_4 = precio_4;
            var precio_5 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.precio_5.autoEmp,
                contenido          = ficha.precio_5.contenido,
                precioNeto         = ficha.precio_5.precioNeto,
                precio_divisa_Neto = ficha.precio_5.precio_divisa_Neto,
                utilidad           = ficha.precio_5.utilidad,
            };

            fichaDTO.precio_5 = precio_5;
            //
            var may_1 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.may_1.autoEmp,
                contenido          = ficha.may_1.contenido,
                precioNeto         = ficha.may_1.precioNeto,
                precio_divisa_Neto = ficha.may_1.precio_divisa_Neto,
                utilidad           = ficha.may_1.utilidad,
            };

            fichaDTO.may_1 = may_1;
            //
            var may_2 = new DtoLibInventario.Precio.Editar.FichaPrecio()
            {
                autoEmp            = ficha.may_2.autoEmp,
                contenido          = ficha.may_2.contenido,
                precioNeto         = ficha.may_2.precioNeto,
                precio_divisa_Neto = ficha.may_2.precio_divisa_Neto,
                utilidad           = ficha.may_2.utilidad,
            };

            fichaDTO.may_2 = may_2;

            var r01 = MyData.PrecioProducto_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 PrecioProducto_Actualizar(DtoLibInventario.Precio.Editar.Ficha ficha)
 {
     return(ServiceProv.PrecioProducto_Actualizar(ficha));
 }