public int Registrar(OrdenProduccion ordenProduccion) { try { var idOrdenProduccion = 0; var transactionOptions = new TransactionOptions {IsolationLevel = IsolationLevel.ReadUncommitted }; using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions)) { if (ordenProduccion.TomarStock) { //Reserva de producto --> Disminuir el Stock de Producto _productoDA.ActualizarStock(ordenProduccion.OrdenVenta.Producto.Id, -1 * ordenProduccion.CantidadProducto); //Cambiar estado a Orden de Venta _ordenVentaDA.ActualizarEstado(ordenProduccion.OrdenVenta.Id, "Programado"); } else { //Generar Orden de Producción idOrdenProduccion = _ordenProduccionDA.Registrar(ordenProduccion); //Registrar Materiales foreach (var material in ordenProduccion.Materiales) { material.IdOrdenProduccion = idOrdenProduccion; _ordenProduccionDA.RegistrarMaterial(material); } //Registrar Maquinas foreach (var secuencia in ordenProduccion.Secuencia) { secuencia.IdOrdenProduccion = idOrdenProduccion; _ordenProduccionDA.RegistrarSecuencia(secuencia); } //Reserva de producto --> Disminuir el Stock de Producto _productoDA.ActualizarStock(ordenProduccion.OrdenVenta.Producto.Id, -1 * ordenProduccion.CantidadProducto); //Cambiar estado a Orden de Venta _ordenVentaDA.ActualizarEstado(ordenProduccion.OrdenVenta.Id, "Programado"); } transactionScope.Complete(); } return idOrdenProduccion; } catch (Exception ex) { throw ThrowException(ex, MethodBase.GetCurrentMethod().Name); } }
public void AsignarAsistentePlaneamiento(OrdenProduccion ordenProduccion) { try { var comando = Context.Database.GetStoredProcCommand(ProcedimientoAlmacenadoActualizarAsignacion); Context.Database.AddInParameter(comando, "@Id", DbType.Int32, ordenProduccion.Id); Context.Database.AddInParameter(comando, "@IdOperador", DbType.Int32, ordenProduccion.Operador.Id); Context.Database.AddInParameter(comando, "@Estado", DbType.String, ordenProduccion.Estado); Context.ExecuteNonQuery(comando); } catch (Exception ex) { throw new ExceptionData(ex.Message, Context.ProfileName, ProcedimientoAlmacenadoActualizarAsignacion); } }
public IList<OrdenProduccion> Listar() { var lista = new List<OrdenProduccion>(); try { var comando = Context.Database.GetStoredProcCommand(ProcedimientoAlmacenadoListar); using (var lector = Context.ExecuteReader(comando)) { while (lector.Read()) { var entidad = new OrdenProduccion { Id = GetDataValue<int>(lector, "Id"), Numero = GetDataValue<string>(lector, "Numero"), Estado = GetDataValue<string>(lector, "Estado"), OrdenVenta = new OrdenVenta { Id = GetDataValue<int>(lector, "IdOrdenVenta"), Numero = GetDataValue<string>(lector, "NumeroOrdenVenta"), FechaEntrega = GetDataValue<DateTime>(lector, "FechaEntrega"), Producto = new Producto { Descripcion = GetDataValue<string>(lector, "DescripcionProducto") } } }; lista.Add(entidad); } } } catch (Exception ex) { throw new ExceptionData(ex.Message, Context.ProfileName, ProcedimientoAlmacenadoListar); } return lista; }
public int RegistrarOrdenProduccion(OrdenProduccion ordenProduccion) { return _ordenProduccionBL.Registrar(ordenProduccion); }
public int Registrar(OrdenProduccion ordenProduccion) { try { var comando = Context.Database.GetStoredProcCommand(ProcedimientoAlmacenadoInsertarOrdenProduccion); Context.Database.AddInParameter(comando, "@IdOrdenVenta", DbType.Int32, ordenProduccion.OrdenVenta.Id); Context.Database.AddInParameter(comando, "@Estado", DbType.String, ordenProduccion.Estado); Context.Database.AddInParameter(comando, "@CantidadProducto", DbType.Int32, ordenProduccion.CantidadProductoDigitado); var idOrdenProduccion = Convert.ToInt32(Context.ExecuteScalar(comando)); return idOrdenProduccion; } catch (Exception ex) { throw new ExceptionData(ex.Message, Context.ProfileName, ProcedimientoAlmacenadoInsertarOrdenProduccion); } }
public OrdenProduccion ObetenerPorNumero(string numero) { OrdenProduccion entidad = null; try { var comando = Context.Database.GetStoredProcCommand(ProcedimientoAlmacenadoObtenerPorNumero); Context.Database.AddInParameter(comando, "@Numero", DbType.String, numero); using (var lector = Context.ExecuteReader(comando)) { if (lector.Read()) { entidad = new OrdenProduccion { Id = GetDataValue<int>(lector, "Id"), Numero = GetDataValue<string>(lector, "Numero"), Estado = GetDataValue<string>(lector, "Estado"), CantidadProducto = GetDataValue<int>(lector, "CantidadProducto"), OrdenVenta = new OrdenVenta { Id = GetDataValue<int>(lector, "IdOrdenVenta"), Numero = GetDataValue<string>(lector, "NumeroOrdenVenta"), Cliente = GetDataValue<string>(lector, "Cliente"), Cantidad = GetDataValue<int>(lector, "CantidadOrdenVenta"), FechaEntrega = GetDataValue<DateTime>(lector, "FechaEntrega"), Producto = new Producto { Id = GetDataValue<int>(lector, "IdProducto"), Descripcion = GetDataValue<string>(lector, "DescripcionProducto") } } }; } } } catch (Exception ex) { throw new ExceptionData(ex.Message, Context.ProfileName, ProcedimientoAlmacenadoObtenerPorNumero); } return entidad; }
public IList<OrdenProduccion> ListarParaEjecutar(string estado1) { var lista = new List<OrdenProduccion>(); try { var comando = Context.Database.GetStoredProcCommand(ProcedimientoAlmacenadoListarParaEjecutar); Context.Database.AddInParameter(comando, "@Estado1", DbType.String, estado1); using (var lector = Context.ExecuteReader(comando)) { while (lector.Read()) { var entidad = new OrdenProduccion { Id = GetDataValue<int>(lector, "Id"), Numero = GetDataValue<string>(lector, "Numero"), Estado = GetDataValue<string>(lector, "Estado"), OrdenVenta = new OrdenVenta { Id = GetDataValue<int>(lector, "IdOrdenVenta"), Numero = GetDataValue<string>(lector, "NumeroOrdenVenta"), FechaEntrega = GetDataValue<DateTime>(lector, "FechaEntrega"), Producto = new Producto { Descripcion = GetDataValue<string>(lector, "DescripcionProducto") } }, Operador = new Usuario { Id = GetDataValue<int>(lector, "IdOperador"), Username = GetDataValue<string>(lector, "UsernameOperador"), NombreCompleto = GetDataValue<string>(lector, "NombreOperador"), } }; lista.Add(entidad); } } } catch (Exception ex) { throw new ExceptionData(ex.Message, Context.ProfileName, ProcedimientoAlmacenadoListarParaEjecutar); } return lista; }