示例#1
0
        private void dgvDetallesFactura_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            BtnAgregar.Enabled        = false;
            txtCodigoProducto.Enabled = false;
            int pos = 0;

            pos = dgvDetallesFactura.CurrentRow.Index;
            if (dgvDetallesFactura.DataSource != null)
            {
                int posColum = dgvDetallesFactura.CurrentCell.ColumnIndex;
                if (dgvDetallesFactura[posColum, pos].Value.ToString() != "")
                {
                    txtIdDetalleFactura.Text = dgvDetallesFactura[0, pos].Value.ToString();
                    txtNombreProducto.Text   = dgvDetallesFactura[1, pos].Value.ToString();
                    txtCodigoProducto.Text   = dgvDetallesFactura[1, pos].Value.ToString();
                    txtCantidad.Text         = dgvDetallesFactura[2, pos].Value.ToString();
                    txtPrecio.Text           = dgvDetallesFactura[3, pos].Value.ToString();
                    ControlFacturacion.Buscar_Detalle(Convert.ToInt32(txtIdDetalle.Text));
                    txtDisponible.Text = ControlFacturacion.existencia.ToString();
                    pedidoantiguo      = Convert.ToInt16(dgvDetallesFactura[2, pos].Value.ToString());
                }
                else
                {
                    MessageBox.Show("La celda seleccionada no contiene información, verifique que está seleccionando una celda con datos.", "Selección vacía", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("No hay datos por cargar en los controles, ingrese un producto al detalle.", "Selección vacía", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
示例#2
0
        void ObtenerPuestasMarcha()
        {
            DataTable data = ControlFacturacion.Buscar_Detalle_Productos(txtCodigoProducto.Text);

            if (data == null)
            {
                DeshabilitarBotones();
            }
            else
            {
                txtCantidad.Enabled = true;
                HabilitarBotones();
                dgvdetalleproductos.DataSource            = data;
                dgvdetalleproductos.Columns[0].Visible    = false;
                dgvdetalleproductos.Columns[1].Visible    = false;
                dgvdetalleproductos.Columns[2].Visible    = false;
                dgvdetalleproductos.Columns[3].HeaderText = "Precio Unitario";
                dgvdetalleproductos.Columns[3].DefaultCellStyle.Format = "N2";
                dgvdetalleproductos.Columns[3].Width       = 30;
                dgvdetalleproductos.Columns[4].Visible     = false;
                dgvdetalleproductos.Columns[5].HeaderText  = "Vencimiento";
                dgvdetalleproductos.Columns[5].Width       = 40;
                dgvdetalleproductos.Columns[6].Visible     = false;
                dgvdetalleproductos.Columns[7].HeaderText  = "Disponibles";
                dgvdetalleproductos.Columns[7].Width       = 45;
                dgvdetalleproductos.Columns[8].Visible     = false;
                dgvdetalleproductos.Columns[9].Visible     = false;
                dgvdetalleproductos.Columns[10].HeaderText = "Nombre del producto";
                dgvdetalleproductos.Columns[3].Width       = 40;
                dgvdetalleproductos.Columns[11].Visible    = false;
            }
        }
示例#3
0
 private void BtnCrearFactura_Click(object sender, EventArgs e)
 {
     try
     {
         Constructor_Facturacion fact = new Constructor_Facturacion();
         fact.id_usuario = Convert.ToInt16(txtIdusuario.Text);
         DateTime now = DateTime.Today;
         fact.fecha_factura = now.ToString("yyyy-MM-dd");
         fact.id_estado     = 1;
         int resultado = ControlFacturacion.Crear_Factura(fact);
         if (resultado >= 1)
         {
             txtIdFactura.Text         = fact.id_factura.ToString();
             BtnCrearFactura.Enabled   = false;
             txtCodigoProducto.Enabled = true;
             BtnAnularFactura.Enabled  = true;
         }
         else
         {
             DeshabilitarBotones();
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#4
0
        void Calcular_Pago()
        {
            ControlFacturacion.Calcular_Pago(Convert.ToInt16(txtIdFactura.Text));
            Constructor_Facturacion pago = new Constructor_Facturacion();

            //Se coloca la N para permitir unicamente dos decimales.
            txtPago.Text        = Constructor_Facturacion.total_pago.ToString("N");
            txtpagoparcial.Text = Constructor_Facturacion.total_pago.ToString("N");
        }
示例#5
0
        void CargarDetalle()
        {
            DataTable datos = ControlFacturacion.ObtenerDetalles(Convert.ToInt16(txtIdFactura.Text));

            if (datos != null)
            {
                dgvDetallesFactura.DataSource            = ControlFacturacion.ObtenerDetalles(Convert.ToInt16(txtIdFactura.Text));
                dgvDetallesFactura.Columns[0].Visible    = false;
                dgvDetallesFactura.Columns[1].HeaderText = "Nombre del producto";
                dgvDetallesFactura.Columns[2].HeaderText = "Cantidad";
                dgvDetallesFactura.Columns[2].Width      = 70;
                dgvDetallesFactura.Columns[3].HeaderText = "Precio unitario";
                dgvDetallesFactura.Columns[4].HeaderText = "Sub-Total";
                dgvDetallesFactura.Columns[4].Width      = 70;
            }
        }
示例#6
0
 void AgregarDetalle()
 {
     try
     {
         if (txtCantidad.Text == "")
         {
             MessageBox.Show("La cantidad de productos no puede estar vacía.", "Error de cantidad", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         else if (Convert.ToInt16(txtCantidad.Text) == 0)
         {
             MessageBox.Show("La cantidad de productos no puede ser igual a cero.", "Error de cantidad", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         else if (Convert.ToInt16(txtCantidad.Text.Trim()) > Convert.ToInt16(txtDisponible.Text.Trim()))
         {
             MessageBox.Show("No hay suficientes productos para la cantidad que desea vender.", "Error de cantidad", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         else
         {
             Constructor_Detalle_Factura detalle = new Constructor_Detalle_Factura();
             detalle.id_producto = Convert.ToInt16(txtIdDetalle.Text);
             detalle.cantidad    = Convert.ToInt16(txtCantidad.Text);
             detalle.id_factura  = Convert.ToInt16(txtIdFactura.Text);
             double pago_parcial = Convert.ToInt16(txtCantidad.Text) * Convert.ToDouble(txtPrecio.Text);
             detalle.total_parcial = pago_parcial;
             int resultado = ControlFacturacion.IngresarDetalle(detalle);
             if (resultado >= 1)
             {
                 //Actualizar cantidad disponible
                 int cantidad_antigua  = Convert.ToInt16(txtDisponible.Text);
                 int cantidad_saliente = Convert.ToInt16(txtCantidad.Text);
                 int cantidad_nueva    = cantidad_antigua - cantidad_saliente;
                 int idproducto        = Convert.ToInt16(txtIdProducto.Text);
                 int iddetalle         = Convert.ToInt16(txtIdDetalle.Text);
                 ControlFacturacion.Actualizar_Cantidad_Productos(cantidad_nueva, iddetalle);
                 LimpiarCampos();
                 Calcular_Pago();
             }
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Limite de tiempo superado.", "Limite de tiempo", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
示例#7
0
 private void BtnFinalizar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("-> Considere que si finaliza la factura ya no podrá editarla. \n ¿Desea finalizar el proceso de facturación?", "Finalizar factura", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         BtnCrearFactura.Enabled = true;
         int pago = ControlFacturacion.Actualizar_Factura_PagoTotal(Convert.ToInt16(txtIdFactura.Text), Convert.ToDouble(txtPago.Text), Convert.ToDouble(txtdescuento.Text.Trim()));
         if (pago > 0)
         {
             txtPago.Text = "0.00";
             //ReporteFacturacion factu = new ReporteFacturacion(Convert.ToInt16(txtIdFactura.Text));
             //factu.ShowDialog();
             LimpiarCampos();
             txtIdFactura.Clear();
             txtIdDetalleFactura.Clear();
             DataTable dt = (DataTable)dgvDetallesFactura.DataSource;
             dt.Clear();
             DeshabilitarBotones();
         }
     }
 }
示例#8
0
 private void BtnAnularFactura_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("¿Está seguro de querer anular la factura?", "Confirmación de anulación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         int anulacion = ControlFacturacion.Anular_Factura(Convert.ToInt16(txtIdFactura.Text));
         if (anulacion > 0)
         {
             BtnCrearFactura.Enabled = true;
             LimpiarCampos();
             txtIdFactura.Clear();
             txtIdDetalleFactura.Clear();
             if (dgvDetallesFactura.DataSource != null)
             {
                 DataTable dt = (DataTable)dgvDetallesFactura.DataSource;
                 dt.Clear();
             }
             txtPago.Text = "0.00";
             DeshabilitarBotones();
         }
     }
 }
示例#9
0
 void cargarDetallesProducto(string codigo)
 {
     this.dgvdetalleproductos.DataSource       = ControlFacturacion.Buscar_Detalle_Productos(codigo);
     dgvdetalleproductos.Columns[0].Visible    = false;
     dgvdetalleproductos.Columns[1].Visible    = false;
     dgvdetalleproductos.Columns[2].Visible    = false;
     dgvdetalleproductos.Columns[3].HeaderText = "Precio Unitario";
     dgvdetalleproductos.Columns[3].DefaultCellStyle.Format = "N2";
     dgvdetalleproductos.Columns[3].Width       = 30;
     dgvdetalleproductos.Columns[4].Visible     = false;
     dgvdetalleproductos.Columns[5].HeaderText  = "Vencimiento";
     dgvdetalleproductos.Columns[5].Width       = 40;
     dgvdetalleproductos.Columns[6].Visible     = false;
     dgvdetalleproductos.Columns[7].HeaderText  = "Disponibles";
     dgvdetalleproductos.Columns[7].Width       = 45;
     dgvdetalleproductos.Columns[8].Visible     = false;
     dgvdetalleproductos.Columns[9].Visible     = false;
     dgvdetalleproductos.Columns[10].HeaderText = "Nombre del producto";
     dgvdetalleproductos.Columns[3].Width       = 60;
     dgvdetalleproductos.Columns[11].Visible    = false;
 }
示例#10
0
        private void BtnEliminarProducto_Click(object sender, EventArgs e)
        {
            int devolver = Convert.ToInt16(txtCantidad.Text) + Convert.ToInt16(txtDisponible.Text);
            // int idproducto = Convert.ToInt16(txtIdProducto.Text);
            int iddetalle = Convert.ToInt16(txtIdDetalle.Text);
            int dev       = ControlFacturacion.Actualizar_Cantidad_Productos(devolver, iddetalle);

            if (dev >= 1)
            {
                //Eliminar detalle
                dev = ControlFacturacion.Eliminar_Detalle(Convert.ToInt16(txtIdDetalleFactura.Text));
                if (dev >= 1)
                {
                    MessageBox.Show("Los productos han sido devueltos al inventario.", "Proceso completado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Calcular_Pago();
                }
            }
            CargarDetalle();
            LimpiarCampos();
            txtCodigoProducto.Enabled = true;
            HabilitarBotones();
            BtnCrearFactura.Enabled = false;
        }
示例#11
0
 private void BtnActualizarDetalle_Click(object sender, EventArgs e)
 {
     nuevopedido = Convert.ToInt16(txtCantidad.Text);
     if (nuevopedido == pedidoantiguo)
     {
         CargarDetalle();
         LimpiarCampos();
         txtCodigoProducto.Enabled = true;
         //MessageBox.Show("NO PASO NADA");
     }
     else if (nuevopedido > pedidoantiguo)
     {
         //MessageBox.Show("AUMENTAR PEDIDO");
         int temp = nuevopedido - pedidoantiguo;
         if (temp <= Convert.ToInt16(txtDisponible.Text))
         {
             Constructor_Detalle_Factura cdet = new Constructor_Detalle_Factura();
             cdet.cantidad           = nuevopedido;
             cdet.id_detalle_factura = Convert.ToInt16(txtIdDetalleFactura.Text);
             cdet.total_parcial      = nuevopedido * Convert.ToDouble(txtPrecio.Text);
             int datos = ControlFacturacion.Actualizar_Detalle_Factura(cdet);
             if (datos >= 1)
             {
                 Constructor_Producto prod = new Constructor_Producto();
                 int nuevacantidad         = Convert.ToInt16(txtDisponible.Text) - temp;
                 //int idproducto = Convert.ToInt16(txtIdDetalle.Text);
                 int iddetalle = Convert.ToInt16(txtIdDetalle.Text);
                 datos = ControlFacturacion.Actualizar_Cantidad_Productos(nuevacantidad, iddetalle);
                 if (datos >= 1)
                 {
                     LimpiarCampos();
                     CargarDetalle();
                     Calcular_Pago();
                     txtCodigoProducto.Enabled = true;
                 }
             }
         }
     }
     else if (nuevopedido < pedidoantiguo)
     {
         //MessageBox.Show("DEVOLVER PRODUCTOS");
         int sumar = pedidoantiguo - nuevopedido;
         Constructor_Detalle_Factura cdet = new Constructor_Detalle_Factura();
         cdet.cantidad           = nuevopedido;
         cdet.id_detalle_factura = Convert.ToInt16(txtIdDetalleFactura.Text);
         cdet.total_parcial      = nuevopedido * Convert.ToDouble(txtPrecio.Text);
         int datos = ControlFacturacion.Actualizar_Detalle_Factura(cdet);
         if (datos >= 1)
         {
             Constructor_Producto prod = new Constructor_Producto();
             int nuevacantidad         = Convert.ToInt16(txtDisponible.Text) + sumar;
             //  int idproducto = Convert.ToInt16(txtIdProducto.Text);
             int iddetalle = Convert.ToInt16(txtIdDetalle.Text);
             datos = ControlFacturacion.Actualizar_Cantidad_Productos(nuevacantidad, iddetalle);
             if (datos >= 1)
             {
                 LimpiarCampos();
                 CargarDetalle();
                 Calcular_Pago();
                 txtCodigoProducto.Enabled = true;
             }
         }
     }
 }