private void FiltrarClientes(string CodNombre)
        {
            try
            {
                ClienteMantenimiento clienMant = new ClienteMantenimiento();
                stpClientes.Children.Clear();
                List<SIGEEA_spListarAsociadoResult> listar = MantAsociado.ListarAsociados(CodNombre);
                foreach (SIGEEA_spListarAsociadoResult lista in listar)
                {

                    uc_Asociado nuevo = new uc_Asociado();
                    nuevo.NombreCompletoAsociado = lista.Nombre;
                    nuevo.Codigo = lista.Codigo_Asociado;

                    if (lista.Estado_Asociado == true) { nuevo.EstadoAsociado = "ACTIVO"; } else { nuevo.EstadoAsociado = "INACTIVO"; }
                    nuevo.idPersona = lista.PK_Id_Persona.ToString();
                    nuevo.IdAsociado = lista.PK_Id_Asociado.ToString();
                    nuevo.btnOpcion.Tag = lista.PK_Id_Asociado;
                    nuevo.btnOpcion2.Tag = lista.PK_Id_Asociado;

                    if (opcion == "Registrar")
                    {
                        nuevo.btnOpcion.Content = "Registrar Finca";
                        nuevo.btnOpcion2.IsEnabled = false;
                        nuevo.btnOpcion2.Content = "Ver Fincas";

                    }

                    else if (opcion == "Editar")
                    {
                        nuevo.btnOpcion.Content = "Editar Finca";
                        //nuevo.btnOpcion2.Content = "Ver Fincas";

                    }

                    else if (opcion == "Eliminar o Activar")
                    {
                        if (nuevo.EstadoAsociado == "ACTIVO") { nuevo.btnOpcion.Visibility = Visibility.Visible; nuevo.btnOpcion2.Visibility = Visibility.Hidden; }
                        else { nuevo.btnOpcion.Visibility = Visibility.Hidden; nuevo.btnOpcion2.Visibility = Visibility.Visible; }
                        nuevo.btnOpcion.Content = "Eliminar";
                        nuevo.btnOpcion2.Content = "Activar";

                    }
                    nuevo.btnOpcion.Click += BtnOpcion_Click;
                    nuevo.btnOpcion2.Click += BtnOpcion2_Click;

                    stpClientes.Children.Add(nuevo);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al listar: " + ex.ToString(), "error", MessageBoxButton.OK);

            }

        }
        public wnwDatosFacturaCliente(int pkIdEmpleado, int pkIdCliente, string Tipo, int pkIdEmpresa, string ptipoPedido, ObservableCollection<uc_DetProducto> nueva, string pMontoTotal, string pDescuentoTotal, string pMontoNetoTotal, string pMonedaTotal)
        {
            InitializeComponent();
            foreach (uc_DetProducto detProducto in nueva)

            {
                listaDetProducto.Add(detProducto);

            }
            IdEmpleado = pkIdEmpleado;
            IdCliente = pkIdCliente;
            tipoFactura = Tipo;
            IdEmpresa = pkIdEmpresa;
            tipoPedido = ptipoPedido;
            montoTatal = pMontoTotal;
            descuentoTotal = pDescuentoTotal;
            montoNetoTotal = pMontoNetoTotal;
            moneda = pMonedaTotal;
            ClienteMantenimiento cliMant = new ClienteMantenimiento();
            if (tipoFactura == "Contado")
            {
                grdPago.Visibility = Visibility.Visible;

            }
            else if (tipoFactura == "Crédito")
            {

                DateTime hoy = DateTime.Now;
                DateTime hoy1 = DateTime.Now;
                SIGEEA_spObtenerCategoriaClienteResult categoria = cliMant.ObtenerCategoriaCliente(IdCliente);
                proximoPago = hoy.AddDays(Convert.ToDouble(categoria.RanPagos_CatCliente));
                proximoLimite = hoy1.AddDays(Convert.ToDouble(categoria.TieMaximo_CatCliente));
                fechaProPago = proximoPago.ToShortDateString();
                fechaLimite = proximoLimite.ToShortDateString();
                txtFechaLimitePago.Text = fechaLimite;
                txtFechaProximoPago.Text = fechaProPago;
                txtMontoaCancelar.Text = pMontoNetoTotal;
                grdAbono.Visibility = Visibility.Visible;
               
            }
            else if (tipoFactura == "Proforma")
            {
                grdPago.Visibility = Visibility.Visible;
            }
            ListaMetodos();
        }
        private void BtnOpcion2_Click(object sender, RoutedEventArgs e)
        {
            var boton = (Button)sender;
            if (opcion == "Eliminar o Activar")
            {


                if (MessageBox.Show("¿Realmente activar este Cliente?", "SIGEEA", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    ClienteMantenimiento mant = new ClienteMantenimiento();
                    mant.ActivarCliente(Convert.ToInt32(boton.Tag));//eliminar

                }
                actualiza();
            }
        }
        private void BtnOpcion_Click(object sender, RoutedEventArgs e)
        {
            var boton = (Button)sender;
            if (opcion == "Registrar")
            {
                wnwRegistrarFinca nueva = new wnwRegistrarFinca(opcion,  Convert.ToInt32(boton.Tag), pFinca:null);
                nueva.ShowDialog();


            }
            else if (opcion == "Editar")
            {
                if(MantFinca.ListarInfoFinca(Convert.ToInt32(boton.Tag), pCodigo:"0", pNombre:null).Count > 1)
                {
                    wnwBuscadorFincas nueva = new wnwBuscadorFincas(opcion);
                    nueva.ShowDialog();
                }
                else
                {
                    wnwRegistrarFinca nueva = new wnwRegistrarFinca(opcion, Convert.ToInt32(boton.Tag), pFinca: MantFinca.ObtenerFincaPorIdAsociado(Convert.ToInt32(boton.Tag)));
                    nueva.ShowDialog();
                    
                }
               
            }

            else if (opcion == "Eliminar o Activar")
            {


                if (MessageBox.Show("¿Realmente activar este Cliente?", "SIGEEA", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    ClienteMantenimiento mant = new ClienteMantenimiento();
                    mant.ActivarCliente(Convert.ToInt32(boton.Tag));//eliminar

                }
                actualiza();
            }
        }
        private void FiltrarClientes(string CedNombre)
        {
            try
            {
                ClienteMantenimiento clienMant = new ClienteMantenimiento();
                stpClientes.Children.Clear();
                List<SIGEEA_spListarClienteResult> listar = clienMant.ListarClientes(CedNombre);
                foreach (SIGEEA_spListarClienteResult lista in listar)
                {

                    uc_Cliente nuevo = new uc_Cliente();
                    nuevo.NombreCompletoCliente = lista.nombreCompleto;
                    nuevo.CedulaCliente = lista.CedParticular_Persona;
                    nuevo.CatCliente = lista.Nombre_TipCatCliente;
                    if (lista.Estado_Cliente == true) { nuevo.EstadoCliente = "ACTIVO"; } else { nuevo.EstadoCliente = "INACTIVO"; }

                    nuevo.btnOpcion.Tag = lista.PK_Id_Cliente;
                    nuevo.btnOpcion2.Tag = lista.PK_Id_Cliente;

                    if (opcion == "Pedido")
                    {
                        nuevo.btnOpcion.Content = "Hacer Pedido";
                        nuevo.btnOpcion2.IsEnabled = false;

                    }
                    else if (opcion == "Editar")
                    {

                        nuevo.btnOpcion.Content = "Editar";
                        nuevo.btnOpcion2.IsEnabled = false;

                    }
                    else if (opcion == "Ver")
                    {
                        nuevo.btnOpcion.Content = "Ver Facturas";
                        nuevo.btnOpcion2.IsEnabled = false;

                    }
                    else if (opcion == "Abono")
                    {
                        nuevo.btnOpcion.Content = "Hacer Abono";
                        nuevo.btnOpcion2.IsEnabled = false;

                    }
                    else if (opcion == "Eliminar o Activar")
                    {
                        if (nuevo.EstadoCliente == "ACTIVO") { nuevo.btnOpcion.Visibility = Visibility.Visible; nuevo.btnOpcion2.Visibility = Visibility.Hidden; }
                        else { nuevo.btnOpcion.Visibility = Visibility.Hidden; nuevo.btnOpcion2.Visibility = Visibility.Visible; }
                        nuevo.btnOpcion.Content = "Eliminar";
                        nuevo.btnOpcion2.Content = "Activar";

                    }
                    nuevo.btnOpcion.Click += BtnOpcion_Click;
                    nuevo.btnOpcion2.Click += BtnOpcion2_Click;

                    stpClientes.Children.Add(nuevo);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al listar: " + ex.ToString(), "error", MessageBoxButton.OK);

            }

        }
        private void BtnOpcion_Click(object sender, RoutedEventArgs e)
        {
            var boton = (Button)sender;
            if (opcion == "Pedido")
            {
                wnwRealizarPedidoCliente nuevoPedido = new wnwRealizarPedidoCliente(pPk_Id_Cliente: Convert.ToInt32(boton.Tag));
                nuevoPedido.ShowDialog();

            }
            else if (opcion == "Editar")
            {

                wnwRegistrarPersona ventana = new wnwRegistrarPersona("Cliente", pAsociado: null, pEmpleado: null, pCliente: MantCliente.ObtenerCliente(Convert.ToInt32(boton.Tag)));
                ventana.ShowDialog();//editar
            }
            else if (opcion == "Ver")
            {
                wnwFacturasCliente nueva = new wnwFacturasCliente(Tipo: "Por cliente", IdCliente: Convert.ToInt32(boton.Tag), IdFactura: 0);
                nueva.ShowDialog();

            }
            else if (opcion == "Abono")
            {
                //nuevo.btnOpcion.Content = "Hacer Abono";

            }
            else if (opcion == "Eliminar o Activar")
            {


                if (MessageBox.Show("¿Realmente eliminar este Cliente?", "SIGEEA", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    ClienteMantenimiento mant = new ClienteMantenimiento();
                    mant.EliminarCliente(Convert.ToInt32(boton.Tag));//eliminar

                }
                actualiza();
            }

        }
        private void cmbTipCliente_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

            ClienteMantenimiento mantCliente = new ClienteMantenimiento();
            lbPkCatCliente.Content = mantCliente.ObtenerPkTipCategoria(Convert.ToString(this.cmbTipCliente.SelectedItem));
        }
        public void listarCategorias()
        {
            ClienteMantenimiento mantCliente = new ClienteMantenimiento();
            cmbTipCliente.ItemsSource = mantCliente.ListarCategorias();

        }
        private void btnRegistrarCliente_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                RegistrarPersona();
                

                ClienteMantenimiento clienteMant = new ClienteMantenimiento();

                if (editar == false)
                {
                    SIGEEA_Cliente nuevoCliente = new SIGEEA_Cliente();
                    SIGEEA_CatCliente nuevaCat = new SIGEEA_CatCliente();
                    nuevaCat.FK_Id_TipCatCliente = Convert.ToInt32(lbPkCatCliente.Content);
                    nuevaCat.Limite_CatCliente = Convert.ToDouble(txbCreMaximo.Text);
                    nuevaCat.RanPagos_CatCliente = txbRango.Text;
                    nuevaCat.TieMaximo_CatCliente = txbTiempoMaximo.Text;
                    clienteMant.RegistrarCliente(nuevaPersona, nuevoCliente, clienteMant.RegistrarCategoria(nuevaCat));
                }
                else
                {
                    
                    SIGEEA_CatCliente nuevaCat = new SIGEEA_CatCliente();
                    nuevaCat.FK_Id_TipCatCliente = Convert.ToInt32(lbPkCatCliente.Content);
                    nuevaCat.Limite_CatCliente = Convert.ToDouble(txbCreMaximo.Text);
                    nuevaCat.RanPagos_CatCliente = txbRango.Text;
                    nuevaCat.TieMaximo_CatCliente = txbTiempoMaximo.Text;
                    SIGEEA_Cliente nuevoCliente = new SIGEEA_Cliente();
                    clienteMant.ModificarCliente(nuevoCliente, mantCliente.EditarCategoria(nuevaCat), nuevaPersona);
                }

                MessageBox.Show("La solicitud realizada se finalizó con éxito.");
            }
            catch
            {
                MessageBox.Show("Error al realizar la solicitud.");
            }
        }
 private void BtnCancelar_Click(object sender, RoutedEventArgs e)
 {
     ClienteMantenimiento clientMant = new ClienteMantenimiento();
     clientMant.SumarInventario(Convert.ToInt32(txbId.Text), (Convert.ToDouble(cantidad) + Convert.ToDouble(ucPedido.NUDTextBox.Text)));
     this.Close();
 }
        private void FiltrarClientes(string CedNombre)
        {
            try
            {
                ClienteMantenimiento clienMant = new ClienteMantenimiento();
                stpClientes.Children.Clear();
                List<SIGEEA_spListarInsumosResult> listar = MantInsumo.ListarInsumos(CedNombre);
                foreach (SIGEEA_spListarInsumosResult lista in listar)
                {

                    uc_Insumo nuevo = new uc_Insumo();
                    nuevo.NombreInsumo = lista.Nombre_Insumo;
                    nuevo.Descripcion = lista.Descripcion_Insumo;
                    nuevo.CanInsumo = lista.Cantidad_InvInsumo.ToString();
                    nuevo.UniMedidaInsumo = lista.Nombre_UniMedida;
                    if (lista.Estado_Insumo == true) { nuevo.EstadoInsumo = "ACTIVO"; } else { nuevo.EstadoInsumo = "INACTIVO"; }
                    nuevo.IdInsumo = lista.PK_Id_Insumo.ToString();
                    nuevo.btnOpcion.Tag = lista.PK_Id_Insumo;
                    nuevo.btnOpcion2.Tag = lista.PK_Id_Insumo;

                    if (opcion == "Pedido")
                    {
                        nuevo.btnOpcion.Content = "Hacer Pedido";
                        

                    }
                    else if (opcion == "Editar")
                    {

                        nuevo.btnOpcion.Content = "Editar";
                        nuevo.btnOpcion2.Visibility = Visibility.Hidden;

                    }
                    else if (opcion == "Pedido")
                    {
                        nuevo.btnOpcion.Content = "Hacer pedido";
                        nuevo.btnOpcion2.Visibility = Visibility.Hidden;

                    }
                    else if (opcion == "Compra")
                    {
                        nuevo.btnOpcion.Content = "Comprar Insumo";
                        nuevo.btnOpcion2.Visibility = Visibility.Hidden;

                    }
                    else if (opcion == "Eliminar o Activar")
                    {
                        if (nuevo.EstadoInsumo == "ACTIVO") { nuevo.btnOpcion.Visibility = Visibility.Visible; nuevo.btnOpcion2.Visibility = Visibility.Hidden; }
                        else { nuevo.btnOpcion.Visibility = Visibility.Hidden; nuevo.btnOpcion2.Visibility = Visibility.Visible; }
                        nuevo.btnOpcion.Content = "Eliminar";
                        nuevo.btnOpcion2.Content = "Activar";

                    }
                    nuevo.btnOpcion.Click += BtnOpcion_Click; ;
                    nuevo.btnOpcion2.Click += BtnOpcion2_Click; ;

                    stpClientes.Children.Add(nuevo);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al listar: " + ex.ToString(), "error", MessageBoxButton.OK);

            }

        }