public static void Insert(PlanMaestroProduccion plan, List <Producto> productosConPocaMP)
        {
            Acceso         ac   = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("sp_PlanProduccion_insert", conexion);

            cmd.Parameters.AddWithValue("@fechaCreacion", plan.fechaCreacion);
            cmd.Parameters.AddWithValue("@fechaInicio", plan.fechaInicio);
            cmd.Parameters.AddWithValue("@fechaFin", plan.fechaFin);
            cmd.Parameters.AddWithValue("@idEstado", plan.estado.idEstado);
            cmd.Parameters.AddWithValue("@observaciones", plan.observaciones);



            try
            {
                conexion.Open();
                tran            = conexion.BeginTransaction();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();
                SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran);
                plan.IDPlanProduccion = Convert.ToInt32((cmdIdentity.ExecuteScalar()));

                foreach (DetallePlanProduccion detPlan in plan.detallePlan)
                {
                    //detPed.pedido.idPedido = ped.idPedido;

                    DetallePlanProduccionDAO.Insert(detPlan, conexion, tran, plan.IDPlanProduccion);

                    actualizarStock(detPlan, conexion, tran, plan, productosConPocaMP);
                }

                tran.Commit();
            }
            catch (ArgumentException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }
예제 #2
0
        public static void renovarStock(DetallePedido detPedido, SqlConnection con, SqlTransaction trans, Pedido pedido, List <Producto> productosConPocaMP)
        {
            DataTable ProductosIntermedio;
            DataTable MateriaPrima;
            DataTable DetallePlan;
            int       idProductoFinal      = 0;
            int       idProductoIntermedio = 0;
            double    cantidad             = 0;

            idProductoFinal = detPedido.producto.idProducto;                                                                             //OBTENEMOS EL ID DEL PRODUCTO FINAL
            cantidad        = detPedido.cantidad;                                                                                        //OBTENEMOS LA CANTIDAD DE PRODUCTOS
            if (ProductoDAO.verificarProductoPlanificado(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)               //PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
            {
                DetallePlan = DetallePlanProduccionDAO.GetDetallePlanXProducto(idProductoFinal, pedido.fechaNecesidad.Date, con, trans); //OBTENEMOS LOS DATOS DEL DETALLE DEL PLAN

                renovarDetallePlanYPedidoXPlan(DetallePlan, pedido.idPedido, con, trans, cantidad);

                MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con);              //CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
                DataTable MateriaPrimaXIntermedio = new DataTable();
                ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans); //CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

                renovarMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans, productosConPocaMP);
            }
            //else
            //{
            //    if (ProductoDAO.verificarPlanSinProducto(pedido.fechaNecesidad.Date, idProductoFinal, con, trans) == true)//PREGUNTAMOS SI PARA ESE PRODUCTO YA HAY UN DETALLE DEL PLAN PARA ESA FECHA Y ES TRUE
            //    {
            //        Producto prodNuevo = new Producto();
            //        prodNuevo.idProducto = idProductoFinal;
            //        DetallePlanProduccion detallePlanProduccion = new DetallePlanProduccion()
            //        {
            //            fechaProduccion = pedido.fechaNecesidad,
            //            idPlan = PlanMaestroProduccionDAO.obtenerIdPlan(pedido.fechaNecesidad.Date),
            //            cantidadPLan = 0,
            //            producto = prodNuevo,
            //            cantidadPedido = double.Parse(cantidad.ToString())
            //        };

            //        cargarNuevoDetallePlanYPedidoXPlan(detallePlanProduccion, con, trans, pedido);

            //        MateriaPrima = ProductoDAO.GetMateriaPrima(idProductoFinal, trans, con);//CARGAMOS EN LA TABLA LOS DATOS DE LAS MATERIAS PRIMAS
            //        DataTable MateriaPrimaXIntermedio = new DataTable();
            //        ProductosIntermedio = ProductoDAO.GetProductoIntermedio(idProductoFinal, con, trans);//CARGAMOS EN LA TABLA LOS DATOS DE LOS PRODUCTOS INTERMEDIO

            //        obtenerMateriasPrimas(MateriaPrima, MateriaPrimaXIntermedio, ProductosIntermedio, cantidad, idProductoFinal, con, trans);
            //    }
            //}
        }
예제 #3
0
 public static void renovarDetallePlanYPedidoXPlan(DataTable DetallePlan, int idPedido, SqlConnection con, SqlTransaction trans, double cantidad)
 {
     DetallePlanProduccionDAO.ActualizarDetallePlan(int.Parse(DetallePlan.Rows[0]["idProducto"].ToString()), cantidad * -1, DateTime.Parse(DetallePlan.Rows[0]["fechaproduccion"].ToString()), con, trans);//ACTUALIZAMOS LA CANTIDAD DE PRODUCTOS EN PEDIDO EN EL DETALLE PLAN PRODUCCION
     DetallePlanProduccionDAO.deletePlanXPedidoXidPedido(idPedido, con, trans);
 }
예제 #4
0
 public static void cargarNuevoDetallePlanYPedidoXPlan(DetallePlanProduccion detallePlanProd, SqlConnection con, SqlTransaction trans, Pedido ped)
 {
     DetallePlanProduccionDAO.Insert(detallePlanProd, con, trans, detallePlanProd.idPlan);//ACTUALIZAMOS LA CANTIDAD DE PRODUCTOS EN PEDIDO EN EL DETALLE PLAN PRODUCCION
     //DetallePlanProduccionDAO.insertarPlanProduccionXPedido(ped.idPedido, detallePlanProd.producto.idProducto, detallePlanProd.idPlan, detallePlanProd.fechaProduccion.Date,trans,con);
 }
        public static void Update(PlanMaestroProduccion ped, List <DetallePlanProduccion> desreservar, List <Producto> productosConPocaMP)
        {
            Acceso         ac   = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[PlanMaestroProduccion] SET [fechaInicio] = @fechaInicio, [fechaFin] = @fechaFin, [observaciones] = @observaciones  WHERE idPlanProduccion = @idPlanProduccion", conexion);

            cmd.Parameters.AddWithValue("@fechaInicio", ped.fechaInicio);
            cmd.Parameters.AddWithValue("@fechaFin", ped.fechaFin);
            cmd.Parameters.AddWithValue("@observaciones", ped.observaciones);
            cmd.Parameters.AddWithValue("@idPlanProduccion", ped.IDPlanProduccion);



            try
            {
                conexion.Open();
                tran            = conexion.BeginTransaction();
                cmd.CommandType = CommandType.Text;
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();
                //SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran);
                //ped.idPedido = Convert.ToInt32((cmdIdentity.ExecuteScalar()));
                DetallePlanProduccionDAO.Delete(ped.IDPlanProduccion, conexion, tran);

                foreach (DetallePlanProduccion det in desreservar)
                {
                    det.cantidadPedido = det.cantidadPedido * -1;
                    det.cantidadPLan   = det.cantidadPLan * -1;

                    actualizarStock(det, conexion, tran, ped, productosConPocaMP);
                }


                foreach (DetallePlanProduccion detPed in ped.detallePlan)
                {
                    //detPed.pedido.idPedido = ped.idPedido;
                    DetallePlanProduccionDAO.Insert(detPed, conexion, tran, ped.IDPlanProduccion);
                    actualizarStock(detPed, conexion, tran, ped, productosConPocaMP);
                }
                tran.Commit();
            }
            catch (ArgumentException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }