Files
compabetoOG/Envios/envios.cs
T

334 lines
14 KiB
C#

using compabetov2.database;
using compabetov2.database.modelos;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace compabetov2
{
public partial class envios : Form
{
private LoginModel loginPrincipal;
public envios(LoginModel loginPrincipal)
{
InitializeComponent();
llenarPanel();
this.loginPrincipal = loginPrincipal;
}
private void llenarPanel()
{
panelEnvio.Controls.Clear();
List<Envio> envios = service.conseguirEnvio();
foreach(Envio envio in envios)
{
if (envio.estado.Equals("EN PROCESO"))
{
TableLayoutPanel carta = new TableLayoutPanel();
carta.ColumnCount = 1;
carta.RowCount = 2;
carta.RowStyles.Add(new RowStyle(SizeType.Percent, 75F));
carta.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
carta.Width = 700;
carta.Height = 170;
FlowLayoutPanel infoPanel = new FlowLayoutPanel();
infoPanel.FlowDirection = FlowDirection.TopDown;
infoPanel.Dock = DockStyle.Fill;
Label lbFecha = new Label();
lbFecha.Text = $"Fecha: {envio.fecha}";
lbFecha.Font = new Font(lbFecha.Font.FontFamily, 12);
lbFecha.Width = 700;
Label lbDireaccion = new Label();
lbDireaccion.Text = $"Direccion: {envio.direccion}";
lbDireaccion.Font = new Font(lbDireaccion.Font.FontFamily, 12);
lbDireaccion.Width = 700;
Label lbTelefono = new Label();
lbTelefono.Text = $"Telefono: {envio.telefono} Estado: {envio.estado}";
lbTelefono.Font = new Font(lbTelefono.Font.FontFamily, 12);
lbTelefono.Width = 700;
Label lbCliente = new Label();
lbCliente.Text = $"Cliente: {envio.cliente}";
lbCliente.Font = new Font(lbCliente.Font.FontFamily, 12);
lbCliente.Width = 700;
Label lbResponzable = new Label();
lbResponzable.Text = $"Responzable: {envio.responsable}";
lbResponzable.Font = new Font(lbResponzable.Font.FontFamily, 12);
lbResponzable.Width = 700;
TableLayoutPanel botonesPanel = new TableLayoutPanel();
botonesPanel.RowCount = 1;
botonesPanel.ColumnCount = 4;
botonesPanel.Dock = DockStyle.Fill;
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
Button btnDetalles = new Button();
btnDetalles.Text = "Detalles";
btnDetalles.Dock = DockStyle.Fill;
btnDetalles.FlatStyle = FlatStyle.Flat;
btnDetalles.FlatAppearance.BorderSize = 0;
btnDetalles.BackColor = Color.FromArgb(33, 90, 255);
btnDetalles.Font = new Font(btnDetalles.Font.FontFamily, 16);
btnDetalles.ForeColor = Color.White;
btnDetalles.Click += new EventHandler(delegate (object sender, EventArgs e)
{
List<DetalleEnvioModel> detalles = service.conseguirDetalleEnvio(envio.id);
string mensaje = "";
foreach (DetalleEnvioModel detalle in detalles)
{
mensaje += $"{detalle.producto.nombre} - {detalle.cantidad}\n";
}
mensaje += $"Total: {envio.total}";
MessageBox.Show(mensaje);
});
Button btnConcluir = new Button();
btnConcluir.Text = "Concluir";
btnConcluir.Dock = DockStyle.Fill;
btnConcluir.FlatStyle = FlatStyle.Flat;
btnConcluir.FlatAppearance.BorderSize = 0;
btnConcluir.BackColor = Color.FromArgb(33, 90, 255);
btnConcluir.Font = new Font(btnDetalles.Font.FontFamily, 16);
btnConcluir.ForeColor = Color.White;
btnConcluir.Click += new EventHandler(delegate (object sender, EventArgs e)
{
DialogResult result = MessageBox.Show($"¿Está seguro de que desea concluir este envio?",
"Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
List<DetalleEnvioModel> detalles = service.conseguirDetalleEnvio(envio.id);
if (service.concluirEnvio(envio, detalles))
{
llenarPanel();
}
}
});
Button btnCancelar = new Button();
btnCancelar.Text = "Cancelar";
btnCancelar.Dock = DockStyle.Fill;
btnCancelar.FlatStyle = FlatStyle.Flat;
btnCancelar.FlatAppearance.BorderSize = 0;
btnCancelar.BackColor = Color.Red;
btnCancelar.Font = new Font(btnDetalles.Font.FontFamily, 16);
btnCancelar.Click += new EventHandler(delegate (object sender, EventArgs e)
{
DialogResult result = MessageBox.Show($"¿Está seguro de que desea eliminar este envio?",
"Confirmación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
if (service.cancelarEnvio(envio.id))
{
llenarPanel();
}
}
});
Button btnAgregar = new Button();
btnAgregar.Text = "Agregar";
btnAgregar.Dock = DockStyle.Fill;
btnAgregar.FlatStyle = FlatStyle.Flat;
btnAgregar.FlatAppearance.BorderSize = 0;
btnAgregar.BackColor = Color.FromArgb(33, 90, 255);
btnAgregar.Font = new Font(btnDetalles.Font.FontFamily, 16);
btnAgregar.ForeColor = Color.White;
btnAgregar.Click += new EventHandler(delegate (object sender, EventArgs e)
{
Envio envioEditado = new Envio(envio.id, "",
txtDireccion.Text == "" ? envio.direccion : txtDireccion.Text,
txtTelefono.Text == "" ? envio.telefono : txtTelefono.Text
, "", "",
txtCliente.Text == "" ? envio.cliente : txtCliente.Text
, 0);
if (service.editarEnvio(envioEditado))
{
llenarPanel();
txtCliente.Text = "";
txtDireccion.Text = "";
txtTelefono.Text = "";
}
});
infoPanel.Controls.Add(lbFecha);
infoPanel.Controls.Add(lbResponzable);
infoPanel.Controls.Add(lbCliente);
infoPanel.Controls.Add(lbDireaccion);
infoPanel.Controls.Add(lbTelefono);
botonesPanel.Controls.Add(btnDetalles, 0, 0);
botonesPanel.Controls.Add(btnConcluir, 1, 0);
botonesPanel.Controls.Add(btnAgregar, 2, 0);
botonesPanel.Controls.Add(btnCancelar, 3, 0);
carta.Controls.Add(infoPanel, 0, 0);
carta.Controls.Add(botonesPanel, 0, 1);
panelEnvio.Controls.Add(carta);
}
else
{
TableLayoutPanel carta = new TableLayoutPanel();
carta.ColumnCount = 1;
carta.RowCount = 2;
carta.RowStyles.Add(new RowStyle(SizeType.Percent, 75F));
carta.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
carta.Width = 700;
carta.Height = 170;
FlowLayoutPanel infoPanel = new FlowLayoutPanel();
infoPanel.FlowDirection = FlowDirection.TopDown;
infoPanel.Dock = DockStyle.Fill;
Label lbFecha = new Label();
lbFecha.Text = $"Fecha: {envio.fecha}";
lbFecha.Font = new Font(lbFecha.Font.FontFamily, 12);
lbFecha.Width = 700;
Label lbDireaccion = new Label();
lbDireaccion.Text = $"Direccion: {envio.direccion}";
lbDireaccion.Font = new Font(lbDireaccion.Font.FontFamily, 12);
lbDireaccion.Width = 700;
Label lbTelefono = new Label();
lbTelefono.Text = $"Telefono: {envio.telefono} Estado: {envio.estado}";
lbTelefono.Font = new Font(lbTelefono.Font.FontFamily, 12);
lbTelefono.Width = 700;
Label lbCliente = new Label();
lbCliente.Text = $"Cliente: {envio.cliente}";
lbCliente.Font = new Font(lbCliente.Font.FontFamily, 12);
lbCliente.Width = 700;
Label lbResponzable = new Label();
lbResponzable.Text = $"Responzable: {envio.responsable}";
lbResponzable.Font = new Font(lbResponzable.Font.FontFamily, 12);
lbResponzable.Width = 700;
TableLayoutPanel botonesPanel = new TableLayoutPanel();
botonesPanel.RowCount = 1;
botonesPanel.ColumnCount = 4;
botonesPanel.Dock = DockStyle.Fill;
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
botonesPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
Button btnDetalles = new Button();
btnDetalles.Text = "Detalles";
btnDetalles.Dock = DockStyle.Fill;
btnDetalles.FlatStyle = FlatStyle.Flat;
btnDetalles.FlatAppearance.BorderSize = 0;
btnDetalles.BackColor = Color.FromArgb(33, 90, 255);
btnDetalles.Font = new Font(btnDetalles.Font.FontFamily, 16);
btnDetalles.ForeColor = Color.White;
btnDetalles.Click += new EventHandler(delegate (object sender, EventArgs e)
{
List<DetalleEnvioModel> detalles = service.conseguirDetalleEnvio(envio.id);
string mensaje = "";
foreach (DetalleEnvioModel detalle in detalles)
{
mensaje += $"{detalle.producto.nombre} - {detalle.cantidad}\n";
}
MessageBox.Show(mensaje);
});
infoPanel.Controls.Add(lbFecha);
infoPanel.Controls.Add(lbResponzable);
infoPanel.Controls.Add(lbCliente);
infoPanel.Controls.Add(lbDireaccion);
infoPanel.Controls.Add(lbTelefono);
botonesPanel.Controls.Add(btnDetalles, 0, 0);
carta.Controls.Add(infoPanel, 0, 0);
carta.Controls.Add(botonesPanel, 0, 1);
panelEnvio.Controls.Add(carta);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
// Cerrar el formulario de ventas
this.Close();
// Verificar si ya hay una instancia del formulario principal
MenuPrincipal menuprincipalForm = Application.OpenForms.OfType<MenuPrincipal>().FirstOrDefault();
if (menuprincipalForm == null)
{
// Si no hay una instancia, crear una nueva
menuprincipalForm = new MenuPrincipal(loginPrincipal);
// Establecer el formulario principal como el formulario MDI padre
menuprincipalForm.MdiParent = this.MdiParent;
// Mostrar el formulario principal
menuprincipalForm.Show();
}
else
{
// Si ya hay una instancia, simplemente llevarlo al frente
menuprincipalForm.BringToFront();
}
}
private void horafecha_Tick(object sender, EventArgs e)
{
lblhora.Text = DateTime.Now.ToString("h:mm:ss");
lblfecha.Text = DateTime.Now.ToLongDateString();
}
private void label10_Click(object sender, EventArgs e)
{
}
private void envios_Load(object sender, EventArgs e)
{
}
private void label4_Click(object sender, EventArgs e)
{
}
private void panelEnvio_Paint(object sender, PaintEventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Estadiscticas verstats = new Estadiscticas();
verstats.Show();
}
}
}