private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            int procesados = 0;
            int importados = 0;
            int noImportados = 0;
            WorkStatusDTO estado = new WorkStatusDTO();

            ControladorPersistencia cp = new ControladorPersistencia();
            List<ClienteVO> clientesServP = cp.consultarClientesServP();

            estado.Status = WorkStatusDTO.START;
            estado.Percentage = clientesServP.Count + 5;
            estado.Message = "(" + clientesServP.Count + ") Clientes encontrados";
            backgroundWorker1.ReportProgress(5, estado);

            foreach (ClienteVO cliente in clientesServP)
            {
                String nit = cliente.Identificacion.Trim();
                if (cliente.TipoNit.Equals("Nit"))
                {
                    cliente.IdCliente = 0;
                    cliente.TipoId = 1; //Nit

                    NitDTO nitDTO = Utilidades.formatearNit(nit);
                    cliente.Identificacion = nitDTO.Nit;
                    cliente.Consecutivo = nitDTO.DigitoVerfificacion;
                    cliente.Codigo = nitDTO.Codigo;
                }
                else
                {
                    cliente.TipoId = 2;
                    cliente.Identificacion = nit;
                    cliente.Codigo = "0";
                    cliente.Consecutivo = "0";
                }

                try
                {
                    cliente.Nombre = cliente.Nombre.Trim();
                    cp.guardarCliente(cliente);
                    importados++;
                }
                catch (PersistenciaException ex)
                {
                    noImportados++;
                }

                procesados++;

                estado.Status = WorkStatusDTO.IN_PROGRESS;
                estado.Percentage = 5 + procesados;
                estado.Message = "(" + procesados + "/" + clientesServP.Count + ") Clientes procesados";
                backgroundWorker1.ReportProgress(procesados, estado);
            }

            e.Result = "Proceso finalizado:\n\n" +
                "Importados:\t\t" + importados + "\n" +
                "No importados:\t\t" + noImportados;
        }
        private void cmdAgregar_Click(object sender, EventArgs e)
        {
            if (txtTiquete.Text.Equals("") || txtId.Text.Equals(""))
            {
                MessageBox.Show("Debe ingresar el número del tiquete y la identificación del cliente", "", MessageBoxButtons.OK,MessageBoxIcon.Hand);
            }
            else
            {
                cp = new ControladorPersistencia();
                DateTime fecha = new DateTime(fechaDesdePicker.Value.Year, fechaDesdePicker.Value.Month, fechaDesdePicker.Value.Day);
                VentaVO venta = cp.consultarVentaTurno(long.Parse(txtTiquete.Text), fecha, fecha, int.Parse(txtIsla.Text), int.Parse(txtTurno.Text));
                if (venta != null)
                {
                    venta.Nit = txtId.Text;
                    if (txtNombre.Text.Equals(""))
                    {
                        venta.Cliente = "CLIENTE NO FIDELIZADO";
                    }
                    else
                    {
                        venta.Cliente = txtNombre.Text;
                    }
                    if (!txtPlaca.Text.Equals(""))
                    {
                        venta.Placa = txtPlaca.Text;
                    }

                    if (chkPlus.Checked)
                    {
                        venta.ModoPago = 2;
                        totalPlus += venta.Total;
                    }
                    else
                    {
                        venta.ModoPago = 1;
                        totalCredito += venta.Total;
                    }

                    ventaVOBindingSource.Add(venta);
                    actualizarTotales();

                    MessageBox.Show("Tiquete agregado", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    txtNombre.Text = "";
                    txtId.Text = "";
                    txtTiquete.Text = "";
                    txtPlaca.Text = "";
                    cboCliente.SelectedIndex = 0;
                    chkPlus.Checked = false;
                }
                else
                {
                    MessageBox.Show("Número de tiquete no existe", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private void cmdConsultar_Click(object sender, EventArgs e)
        {
            this.UseWaitCursor = true;
            ventaVOBindingSource.DataSource = null;
            totalEfectivo = 0;
            totalOtros = 0;
            totalSodexo = 0;
            totalBigPass = 0;
            totalCredito = 0;
            totalTarjetas = 0;
            totalPlus = 0;
            totalTicketTronik = 0;
            totalVentas = 0;
            totalConsumos = 0;
            try
            {
                if (cboEmpleados.SelectedIndex != -1 && !txtIsla.Text.Equals("") && !txtTurno.Text.Equals(""))
                {

                    long codEmp = long.Parse(cboEmpleados.SelectedValue.ToString());
                    long isla = long.Parse(txtIsla.Text);
                    long turno = long.Parse(txtTurno.Text);
                    cp = new ControladorPersistencia();
                    DateTime fecha = new DateTime(fechaDesdePicker.Value.Year, fechaDesdePicker.Value.Month, fechaDesdePicker.Value.Day);
                    if (cp.existeCierre(codEmp, turno, isla, fecha, fecha) == 0)
                    {
                        totalCredito = cp.consultarTotalVentasFidelizadas(codEmp, turno, isla, fecha, fecha);
                        ventaVOBindingSource.DataSource = cp.consultarVentasFidelizados(codEmp, fecha, fecha, isla, turno);
                        //productosTurno = cp.consultarProductosTurno(fecha, fecha, isla, turno);

                        /*if (productosTurno != null && productosTurno.Count > 0)
                        {
                            foreach (ProductoTurnoVO pt in productosTurno)
                            {
                                totalConsumos += pt.Valor;
                            }
                        }*/

                        if (ventaVOBindingSource.Count == 0)
                        {
                            MessageBox.Show("No se encontraron ventas crédito para la fecha, turno e isla seleccionados", "Resultado del cierre ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }

                        cmdGuardar.Enabled = true;
                        frameAdicionar.Enabled = false;

                        txtNombre.Text = "";
                        txtId.Text = "";
                        txtTiquete.Text = "";
                        txtPlaca.Text = "";

                        actualizarTotales();
                    }
                    else
                    {
                        MessageBox.Show("Ya se ha realizado cierre para la fecha seleccionada", "Resultado del cierre ", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Debe ingresar la fecha, el código de empleado, el turno y la isla", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    restaurarCampos();
                }
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
                if(ex.InnerException != null)
                {
                    msg += " " + ex.InnerException.Message;
                }
                MessageBox.Show(msg);
            }
            this.UseWaitCursor = false;
        }
 public EditarMovimientosDiarios()
 {
     InitializeComponent();
     cp = new ControladorPersistencia();
     tipoIdVOBindingSource.DataSource = cp.consultarTipos();
 }