public int getId(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select Id From Dosificacion Where Id_Sucursal = @Id_Sucursal And Estado = @Estado";
     sqlCommand.Parameters.AddWithValue("@Estado", dosificacion.ESTADO);
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     sqlConnection.Open();
     int id = Convert.ToInt32(sqlCommand.ExecuteScalar());
     sqlConnection.Close();
     return id;
 }
 public int authenticate(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select COUNT(Id) From Dosificacion Where Numero_De_Autorizacion = @Numero_De_Autorizacion And Id <> @Id";
     sqlCommand.Parameters.AddWithValue("@Numero_De_Autorizacion", dosificacion.NUMERO_DE_AUTORIZACION);
     sqlCommand.Parameters.AddWithValue("@Id", dosificacion.ID);
     sqlConnection.Open();
     int exists = Convert.ToInt32(sqlCommand.ExecuteScalar());
     sqlConnection.Close();
     return exists;
 }
 public int add(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.StoredProcedure;
     sqlCommand.CommandText = "InsertarDosificacion";
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     sqlCommand.Parameters.AddWithValue("@Numero_De_Autorizacion", dosificacion.NUMERO_DE_AUTORIZACION);
     sqlCommand.Parameters.AddWithValue("@Llave", dosificacion.LLAVE);
     sqlCommand.Parameters.AddWithValue("@Fecha_Limite_De_Emision", dosificacion.FECHA_LIMITE_DE_EMISION);
     sqlCommand.Parameters.AddWithValue("@Leyenda", dosificacion.LEYENDA);
     sqlCommand.Parameters.AddWithValue("@Estado", dosificacion.ESTADO);
     sqlConnection.Open();
     int id = Convert.ToInt32(sqlCommand.ExecuteScalar());
     sqlConnection.Close();
     return id;
 }
 public int getRemainingDays(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.getRemainingDays(dosificacion);
 }
 public int getId(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.getId(dosificacion);
 }
 public int exists(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.exists(dosificacion);
 }
 public int authenticate(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.authenticate(dosificacion);
 }
 public int add(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.add(dosificacion);
 }
 public DataTable searchAll(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select ROW_NUMBER() OVER (ORDER BY Id) As Numero, Id, Numero_De_Autorizacion, Llave, "
         + "Fecha_Limite_De_Emision, Leyenda, Estado "
         + "From Dosificacion Where Id_Sucursal = @Id_Sucursal Order By Id Asc";
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
     sqlDataAdapter.SelectCommand = sqlCommand;
     DataTable dataTable = new DataTable("Dosificacion");
     sqlDataAdapter.Fill(dataTable);
     return dataTable;
 }
 public void update(DosificacionEnt dosificacion)
 {
     objetoDosificacion.update(dosificacion);
 }
 public void updateEstado(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Update Dosificacion Set Estado = @Estado Where Id = @Id";
     sqlCommand.Parameters.AddWithValue("@Estado", dosificacion.ESTADO);
     sqlCommand.Parameters.AddWithValue("@Id", dosificacion.ID);
     sqlConnection.Open();
     sqlCommand.ExecuteNonQuery();
     sqlConnection.Close();
 }
 public void update(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Update Dosificacion Set Id_Sucursal = @Id_Sucursal, Numero_De_Autorizacion = @Numero_De_Autorizacion, "
         + "Llave = @Llave, Fecha_Limite_De_Emision = @Fecha_Limite_De_Emision, Leyenda = @Leyenda, Estado = @Estado "
         + "Where Id = @Id";
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     sqlCommand.Parameters.AddWithValue("@Numero_De_Autorizacion", dosificacion.NUMERO_DE_AUTORIZACION);
     sqlCommand.Parameters.AddWithValue("@Llave", dosificacion.LLAVE);
     sqlCommand.Parameters.AddWithValue("@Fecha_Limite_De_Emision", dosificacion.FECHA_LIMITE_DE_EMISION);
     sqlCommand.Parameters.AddWithValue("@Leyenda", dosificacion.LEYENDA);
     sqlCommand.Parameters.AddWithValue("@Estado", dosificacion.ESTADO);
     sqlCommand.Parameters.AddWithValue("@Id", dosificacion.ID);
     sqlConnection.Open();
     sqlCommand.ExecuteNonQuery();
     sqlConnection.Close();
 }
 public DataTable select(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select Id, Numero_De_Autorizacion, Llave From Dosificacion "
         + "Where Estado = 'ACTIVA' And Id_Sucursal = @Id_Sucursal";
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
     sqlDataAdapter.SelectCommand = sqlCommand;
     DataTable dataTable = new DataTable("Dosificacion");
     sqlDataAdapter.Fill(dataTable);
     return dataTable;
 }
 public DataTable searchAll(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.searchAll(dosificacion);
 }
 public int getRemainingDays(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select ISNULL(DATEDIFF(DAY, GETDATE(), Fecha_Limite_De_Emision), 0) From Dosificacion "
         + "Where Estado = 'ACTIVA' And Id_Sucursal = @Id_Sucursal And Id = @Id";
     sqlCommand.Parameters.AddWithValue("@Id_Sucursal", dosificacion.ID_SUCURSAL);
     sqlCommand.Parameters.AddWithValue("@Id", dosificacion.ID);
     sqlConnection.Open();
     int remainingDays = Convert.ToInt32(sqlCommand.ExecuteScalar());
     sqlConnection.Close();
     return remainingDays;
 }
 public DataTable select(DosificacionEnt dosificacion)
 {
     return objetoDosificacion.select(dosificacion);
 }
 private void reviewDosificacion()
 {
     SesionEnt.activeDosificacion = true;
     dosificacion.ID_SUCURSAL = 1;
     dosificacion.ESTADO = "ACTIVA";
     if (objetoDosificacion.exists(dosificacion) == 1)
     {
         dosificacion.ID = objetoDosificacion.getId(dosificacion);
         int remainingDays = objetoDosificacion.getRemainingDays(dosificacion);
         if (remainingDays <= 7)
         {
             if (remainingDays < 0)
             {
                 dosificacion.ESTADO = "INACTIVA";
                 objetoDosificacion.updateStatus(dosificacion);
                 dosificacion = new DosificacionEnt();
                 dosificacion.ID_SUCURSAL = 1;
                 dosificacion.ESTADO = "PENDIENTE";
                 if (objetoDosificacion.exists(dosificacion) == 1)
                 {
                     dosificacion.ID = objetoDosificacion.getId(dosificacion);
                     dosificacion.ESTADO = "ACTIVA";
                     objetoDosificacion.updateStatus(dosificacion);
                 }
                 else
                 {
                     nuevaDosificacionToolStripMenuItem.Visible = true;
                     SesionEnt.activeDosificacion = false;
                     MessageBox.Show("No existe una dosificación activa. No se pueden emitir facturas.", "Advertencia", MessageBoxButtons.OK,
                         MessageBoxIcon.Warning);
                 }
             }
             else
             {
                 MessageBox.Show("La dosificación vencerá en " + remainingDays + " días.", "Advertencia", MessageBoxButtons.OK,
                     MessageBoxIcon.Warning);
             }
         }
     }
     else
     {
         nuevaDosificacionToolStripMenuItem.Visible = true;
         SesionEnt.activeDosificacion = false;
         MessageBox.Show("No existe una dosificación activa. No se pueden emitir facturas.", "Advertencia", MessageBoxButtons.OK,
             MessageBoxIcon.Warning);
     }
 }
 public void updateStatus(DosificacionEnt dosificacion)
 {
     objetoDosificacion.updateEstado(dosificacion);
 }
 public DataTable search(DosificacionEnt dosificacion)
 {
     SqlConnection sqlConnection = new SqlConnection(ConexionDal.connectionString);
     SqlCommand sqlCommand = sqlConnection.CreateCommand();
     sqlCommand.CommandType = CommandType.Text;
     sqlCommand.CommandText = "Select S.Numero As Numero_De_Sucursal, D.Numero_De_Autorizacion, D.Llave, D.Fecha_Limite_De_Emision, "
         + "D.Leyenda, D.Estado "
         + "From Sucursal S, Dosificacion D Where S.Id = D.Id_Sucursal And S.Estado = 1 And D.Id = @Id";
     sqlCommand.Parameters.AddWithValue("@Id", dosificacion.ID);
     SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
     sqlDataAdapter.SelectCommand = sqlCommand;
     DataTable dataTable = new DataTable("Dosificacion");
     sqlDataAdapter.Fill(dataTable);
     return dataTable;
 }