コード例 #1
0
        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);
        }
コード例 #2
0
 public DtoLib.Resultado Configuracion_Actualizar_TasaDivisa_ActualizarData(DtoLibSistema.Configuracion.ActualizarTasaDivisa.ActualizarData.Ficha ficha)
 {
     return(ServiceProv.Configuracion_Actualizar_TasaDivisa_ActualizarData(ficha));
 }
コード例 #3
0
        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);
        }