private void btnPDF_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Espere mientras el documento es generado. Presione 'Aceptar para comenzar'");
            int       idVenta            = int.Parse(dataRow["ID"].ToString());
            VentasDAL ventasDAL          = new VentasDAL();
            DatosDocumentoPagoVIEW datos = ventasDAL.CargarDatos(idVenta);

            datos.DETALLE_BOLETA = ventasDAL.ListarDetalleBoleta(idVenta);
            ExportarArchivos PDF   = new ExportarArchivos();
            string           folio = datos.FOLIO.ToString();

            for (int i = 0; i < 9; i++)
            {
                if (folio.Length < 8)
                {
                    folio = "0" + folio;
                }
            }
            string rutaDcoc = PDF.DocumentoPagoPDF(datos, folio);

            MessageBox.Show("El documento ha sido generado correctamente. Puede buecar el archivo en 'Mis Documentos'");
        }
        private void CargarBoleta(DataRow dataRow)
        {
            CargarTablaDetalle();
            int                idBoleta           = int.Parse(dataRow["ID"].ToString());
            VentasDAL          ventas             = new VentasDAL();
            AnulacionVentasDAL anulacionVentasDAL = new AnulacionVentasDAL();

            datosDocumentoPagoVIEW = ventas.CargarDatos(idBoleta);
            VENTAS       datoVenta    = ventas.ObtenerVentaId(idBoleta);
            SucursalNEG  sucursalNEG  = new SucursalNEG();
            EmpleadosNEG empleadosNEG = new EmpleadosNEG();

            txtCliente.Text  = datosDocumentoPagoVIEW.NOMBRE_CLIENTE + " " + datosDocumentoPagoVIEW.APELLIDO_CLIENTE;
            txtSucursal.Text = sucursalNEG.CargarSucursal(datoVenta.SUCURSAL_ID).NOMBRE;
            txtEmpleado.Text = empleadosNEG.CargarEmpleado(datoVenta.EMPLEADO_ID).NOMBRE + " " + empleadosNEG.CargarEmpleado(datoVenta.EMPLEADO_ID).APELLIDO;
            dpkFechaCreacion.SelectedDate = datoVenta.FECHA_VENTA;
            string folio = idBoleta.ToString();

            for (int i = 0; i < 9; i++)
            {
                if (folio.Length < 8)
                {
                    folio = "0" + folio;
                }
            }

            txtFolio.Text         = folio;
            txtTipoDocumento.Text = datosDocumentoPagoVIEW.TIPO_DOCUMENTO;
            txtestadoVenta.Text   = anulacionVentasDAL.ValidaEstadoVenta(idBoleta);
            txtMoneda.Text        = datosDocumentoPagoVIEW.TIPO_MONEDA;
            double neto = Convert.ToDouble(datosDocumentoPagoVIEW.TOTAL) / 1.19;

            txtNeto.Text = string.Format("{0:n2}", (neto));
            double iva = neto * 0.19;

            txtIva.Text         = string.Format("{0:n2}", iva);
            txtTotal.Text       = string.Format("{0:n2}", (Convert.ToDouble(datosDocumentoPagoVIEW.TOTAL)));
            txtTotalMoneda.Text = string.Format("{0:n2}", (datosDocumentoPagoVIEW.TOTAL * datosDocumentoPagoVIEW.COSTO_MONEDA));
            //ORDEN DE TRABAJO N°"
            List <DETALLE_VENTAS> listaDetalles = ventas.ListarDetalleVenta(idBoleta);

            foreach (var x in listaDetalles)
            {
                if (x.SERVICIO_ID == 1 && x.PRODUCTO_ID == 1)
                {//OT
                    string    idOrden = x.NOMBRE_PRODUCTO.Split('°')[1];
                    DataTable tabla   = ((DataView)dgDetalleDocumento.ItemsSource).ToTable();
                    DataRow   fila    = tabla.NewRow();
                    fila["CANTIDAD"]    = 1;
                    fila["TIPO ITEM"]   = "OT";
                    fila["ID ITEM"]     = idOrden;
                    fila["NOMBRE ITEM"] = x.NOMBRE_PRODUCTO;
                    fila["P UNITARIO"]  = x.PRECIO_VENTA;
                    fila["TOTAL"]       = x.PRECIO_VENTA;
                    tabla.Rows.Add(fila);
                    dgDetalleDocumento.ItemsSource = tabla.DefaultView;
                }
                else if (x.PRODUCTO_ID == 1 && x.SERVICIO_ID > 1)
                {//serv
                    DataTable tabla = ((DataView)dgDetalleDocumento.ItemsSource).ToTable();
                    DataRow   fila  = tabla.NewRow();
                    fila["CANTIDAD"]    = 1;
                    fila["TIPO ITEM"]   = "SER";
                    fila["ID ITEM"]     = x.SERVICIO_ID;
                    fila["NOMBRE ITEM"] = x.NOMBRE_PRODUCTO;
                    fila["P UNITARIO"]  = x.PRECIO_VENTA;
                    fila["TOTAL"]       = x.MONTO_TOTAL;
                    tabla.Rows.Add(fila);
                    dgDetalleDocumento.ItemsSource = tabla.DefaultView;
                }
                else if (x.PRODUCTO_ID > 1 && x.SERVICIO_ID == 1)
                {//prod
                    DataTable tabla = ((DataView)dgDetalleDocumento.ItemsSource).ToTable();
                    DataRow   fila  = tabla.NewRow();
                    fila["CANTIDAD"]    = x.CANTIDAD;
                    fila["TIPO ITEM"]   = "PRO";
                    fila["ID ITEM"]     = x.PRODUCTO_ID;
                    fila["NOMBRE ITEM"] = x.NOMBRE_PRODUCTO;
                    fila["P UNITARIO"]  = x.PRECIO_VENTA;
                    fila["TOTAL"]       = x.MONTO_TOTAL;
                    tabla.Rows.Add(fila);
                    dgDetalleDocumento.ItemsSource = tabla.DefaultView;
                }
            }
        }
        private void btnIngresar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (cbxSucursal.SelectedValue != null)
                {
                    if (int.Parse(cbxSucursal.SelectedValue.ToString()) > 0)
                    {
                        if (cbxCliente.SelectedValue != null)
                        {
                            if (int.Parse(cbxCliente.SelectedValue.ToString()) > 0)
                            {
                                if (cbxTipoDocumento.SelectedValue != null)
                                {
                                    if (int.Parse(cbxTipoDocumento.SelectedValue.ToString()) > 0)
                                    {
                                        if (cbxMoneda.SelectedValue != null)
                                        {
                                            if (int.Parse(cbxTipoDocumento.SelectedValue.ToString()) > 0)
                                            {
                                                if (cbxEmpleado.SelectedValue != null)
                                                {
                                                    if (int.Parse(cbxEmpleado.SelectedValue.ToString()) > 0)
                                                    {
                                                        DataTable tabla = ((DataView)dgDetalleDocumento.ItemsSource).ToTable();
                                                        if (tabla.Rows.Count > 0)
                                                        {
                                                            MessageBox.Show("Espere mientras el documento es generado. Presione 'Aceptar para comenzar'");
                                                            int      _idCliente                = int.Parse(cbxCliente.SelectedValue.ToString());
                                                            int      _sucursal                 = int.Parse(cbxSucursal.SelectedValue.ToString());
                                                            int      _tipoDocumento            = int.Parse(cbxTipoDocumento.SelectedValue.ToString());
                                                            DateTime _fechaDocumento           = DateTime.Parse(dpkFechaCreacion.SelectedDate.ToString());
                                                            double   _neto                     = double.Parse(txtNeto.Text);
                                                            int      _idEmpleado               = int.Parse(cbxEmpleado.SelectedValue.ToString());
                                                            double   _iva                      = double.Parse(txtIva.Text);
                                                            double   _total                    = double.Parse(txtTotal.Text);
                                                            double   _totalMoneda              = double.Parse(txtTotalMoneda.Text);
                                                            int      _idMoneda                 = int.Parse(cbxTipoDocumento.SelectedValue.ToString());
                                                            List <DETALLE_VENTAS> listaDetalle = new List <DETALLE_VENTAS>();
                                                            int    cantidadTotal               = 0;
                                                            string reservas                    = "";
                                                            foreach (DataRow fila in tabla.Rows)
                                                            {
                                                                DETALLE_VENTAS detalle = new DETALLE_VENTAS();
                                                                detalle.FECHA_CREACION      = DateTime.Now;
                                                                detalle.FECHA_ULTIMO_UPDATE = DateTime.Now;
                                                                detalle.CANTIDAD            = int.Parse(fila.ItemArray[0].ToString());
                                                                detalle.MONTO_TOTAL         = int.Parse(fila.ItemArray[5].ToString());
                                                                detalle.NOMBRE_PRODUCTO     = fila.ItemArray[3].ToString();
                                                                detalle.PRECIO_VENTA        = Convert.ToDecimal(fila.ItemArray[4].ToString());
                                                                detalle.MULTI_MONEDA_ID     = _idMoneda;

                                                                if (fila.ItemArray[1].ToString() == "PRO")
                                                                {
                                                                    detalle.PRODUCTO_ID = int.Parse(fila.ItemArray[2].ToString());
                                                                    detalle.SERVICIO_ID = 1;
                                                                }
                                                                if (fila.ItemArray[1].ToString() == "SER")
                                                                {
                                                                    detalle.PRODUCTO_ID = 1;
                                                                    detalle.SERVICIO_ID = int.Parse(fila.ItemArray[2].ToString());
                                                                }
                                                                if (fila.ItemArray[1].ToString() == "OT")
                                                                {
                                                                    detalle.PRODUCTO_ID = 1;
                                                                    detalle.SERVICIO_ID = 1;
                                                                    reservas            = reservas + fila.ItemArray[2].ToString() + ";";
                                                                }
                                                                listaDetalle.Add(detalle);
                                                                cantidadTotal = cantidadTotal + int.Parse(detalle.CANTIDAD.ToString());
                                                            }
                                                            VENTAS ventas = new VENTAS();
                                                            ventas.FECHA_CREACION      = DateTime.Now;
                                                            ventas.FECHA_ULTIMO_UPDATE = DateTime.Now;
                                                            ventas.CANTIDAD_TOTAL      = cantidadTotal;
                                                            ventas.FECHA_VENTA         = DateTime.Now;
                                                            ventas.MONTO_TOTAL         = Convert.ToDecimal(_total);
                                                            ventas.CLIENTE_ID          = _idCliente;
                                                            ventas.EMPLEADO_ID         = _idEmpleado;
                                                            ventas.MULTI_MONEDA_ID     = _idMoneda;
                                                            ventas.SUCURSAL_ID         = _sucursal;
                                                            ventas.TIPO_VENTA_ID       = _tipoDocumento;
                                                            VentasNEG ventasNEG = new VentasNEG();
                                                            string    respuesta = ventasNEG.EmitirVenta(ventas, listaDetalle, reservas);
                                                            if (respuesta == "creado")
                                                            {
                                                                int       idVenta            = ventasNEG.ObtenerUtlimoIdVenta();
                                                                VentasDAL ventasDAL          = new VentasDAL();
                                                                DatosDocumentoPagoVIEW datos = ventasDAL.CargarDatos(idVenta);
                                                                datos.DETALLE_BOLETA = ventasDAL.ListarDetalleBoleta(idVenta);
                                                                ExportarArchivos PDF   = new ExportarArchivos();
                                                                string           folio = datos.FOLIO.ToString();
                                                                for (int i = 0; i < 9; i++)
                                                                {
                                                                    if (folio.Length < 8)
                                                                    {
                                                                        folio = "0" + folio;
                                                                    }
                                                                }

                                                                string       rutaDcoc     = PDF.DocumentoPagoPDF(datos, folio);
                                                                ServerCorreo abrir_server = new ServerCorreo();
                                                                Correo       correoM      = new Correo();
                                                                SmtpClient   server       = abrir_server.InstanciaServer();
                                                                //Instancia la libreria que permite armar correo electronico y llama el metodo que lo crea
                                                                MailMessage email = correoM.CorreoEnvioFactura(rutaDcoc, datos.CORREO_CLIENTE, datos.NOMBRE_CLIENTE + " " + datos.APELLIDO_CLIENTE, folio);
                                                                //envia el correo
                                                                server.Send(email);
                                                                Limpiar();

                                                                MessageBox.Show("El documento ha sido generado correctamente. Se ha enviado una copia por correo al cliente y puede tambien buscar una copia del archivo en 'Mis Documentos'");
                                                            }
                                                        }
                                                        else
                                                        {
                                                            MessageBox.Show("Deben ingresar productos o servicios al documento");
                                                        }
                                                    }
                                                    else
                                                    {
                                                        MessageBox.Show("Debe seleccionar un empleado");
                                                    }
                                                }
                                                else
                                                {
                                                    MessageBox.Show("Debe seleccionar un empleado");
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Debe seleccionar un tipo de documento");
                                            }
                                        }
                                        else
                                        {
                                            MessageBox.Show("Debe seleccionar una moneda");
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show("Debe seleccionar un tipo de documento");
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Debe seleccionar un tipo de documento");
                                }
                            }
                            else
                            {
                                MessageBox.Show("Debe seleccionar un cliente");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Debe seleccionar un cliente");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Debe seleccionar una sucursal");
                    }
                }
                else
                {
                    MessageBox.Show("Debe seleccionar una sucursal");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error:\n" + ex.TargetSite + "\n" + ex.Message.ToString());
            }
        }