/// <summary>
        /// Revisa y cambia el estado de las facturas, para que cuando se listen las facturas, puedan ser editables.
        /// </summary>
        /// <param name="pkFactura"></param>
        public void RevisaFactura(int pkFactura)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            List <SIGEEA_spObtenerDetalleFacturaAsociadoResult> listaDetalles = dc.SIGEEA_spObtenerDetalleFacturaAsociado(pkFactura).ToList();
            bool validador = true;

            foreach (SIGEEA_spObtenerDetalleFacturaAsociadoResult d in listaDetalles)
            {
                if (d.CanNeta_DetFacAsociado < 0)
                {
                    validador = false; //Existe al menos un detalle incompleto
                    break;
                }
            }

            if (validador == true)
            {
                SIGEEA_FacAsociado factura = dc.SIGEEA_FacAsociados.First(c => c.PK_Id_FacAsociado == pkFactura);
                factura.CanNeta_FacAsociado       = factura.CanNeta_FacAsociado;
                factura.CanTotal_FacAsociado      = factura.CanTotal_FacAsociado;
                factura.Estado_FacAsociado        = factura.Estado_FacAsociado;
                factura.FecEntrega_FacAsociado    = factura.FecEntrega_FacAsociado;
                factura.FecPago_FacAsociado       = factura.FecPago_FacAsociado;
                factura.FK_Id_Asociado            = factura.FK_Id_Asociado;
                factura.Incompleta_FacAsociado    = false;
                factura.Observaciones_FacAsociado = factura.Observaciones_FacAsociado;
                dc.SubmitChanges();
            }
        }
        /// <summary>
        /// Determina si a una factura ya se le puede cambiar su estado de cancelado a partir de sus detalles
        /// </summary>
        /// <param name="pFactura"></param>
        private void RevisaFacurasCanceladas(int pFactura)
        {
            DataClasses1DataContext dc = new DataClasses1DataContext();
            List <SIGEEA_spObtenerDetalleFacturaAsociadoResult> lista = dc.SIGEEA_spObtenerDetalleFacturaAsociado(pFactura).ToList();
            bool validador = true;

            foreach (SIGEEA_spObtenerDetalleFacturaAsociadoResult d in lista)
            {
                if (d.Cancelado_DetFacAsociado == false)
                {
                    validador = false;
                    break;
                }
            }

            if (validador == true)
            {
                SIGEEA_FacAsociado factura = dc.SIGEEA_FacAsociados.First(c => c.PK_Id_FacAsociado == pFactura);
                factura.CanNeta_FacAsociado       = factura.CanNeta_FacAsociado;
                factura.CanTotal_FacAsociado      = factura.CanTotal_FacAsociado;
                factura.Estado_FacAsociado        = false;
                factura.FecEntrega_FacAsociado    = factura.FecEntrega_FacAsociado;
                factura.FecPago_FacAsociado       = DateTime.Now;
                factura.FK_Id_Asociado            = factura.FK_Id_Asociado;
                factura.Incompleta_FacAsociado    = factura.Incompleta_FacAsociado;
                factura.Observaciones_FacAsociado = factura.Observaciones_FacAsociado;
                dc.SubmitChanges();
            }
        }
        /// <summary>
        /// Actualiza la factura con respecto a su cantidad neta
        /// </summary>
        /// <param name="pFactura"></param>
        public void CantidadNetaFactura(int pFactura)
        {
            DataClasses1DataContext dc      = new DataClasses1DataContext();
            SIGEEA_FacAsociado      factura = dc.SIGEEA_FacAsociados.First(c => c.PK_Id_FacAsociado == pFactura);
            List <SIGEEA_spObtenerDetalleFacturaAsociadoResult> listaDetalles = dc.SIGEEA_spObtenerDetalleFacturaAsociado(factura.PK_Id_FacAsociado).ToList();
            double cantidadNeta = 0;

            foreach (SIGEEA_spObtenerDetalleFacturaAsociadoResult f in listaDetalles)
            {
                if (f.CanNeta_DetFacAsociado == -1)
                {
                    continue;
                }
                cantidadNeta += (double)f.CanNeta_DetFacAsociado;
            }
            factura.CanNeta_FacAsociado       = cantidadNeta;
            factura.CanTotal_FacAsociado      = factura.CanTotal_FacAsociado;
            factura.Estado_FacAsociado        = factura.Estado_FacAsociado;
            factura.FecEntrega_FacAsociado    = factura.FecEntrega_FacAsociado;
            factura.FecPago_FacAsociado       = factura.FecPago_FacAsociado;
            factura.FK_Id_Asociado            = factura.FK_Id_Asociado;
            factura.Incompleta_FacAsociado    = factura.Incompleta_FacAsociado;
            factura.Observaciones_FacAsociado = factura.Observaciones_FacAsociado;
            dc.SubmitChanges();
        }
        /// <summary>
        /// Registra la entrega del producto, a partir de los datos de una factura y una lista de detalles.
        /// </summary>
        /// <param name="pFactura"></param>
        /// <param name="pDetalles"></param>
        public void RegistraEntrega(SIGEEA_FacAsociado pFactura, List <SIGEEA_DetFacAsociado> pDetalles)
        {
            try
            {
                DataClasses1DataContext dc = new DataClasses1DataContext();

                pFactura.FecEntrega_FacAsociado = DateTime.Now;
                pFactura.CanNeta_FacAsociado    = -1;
                double total = 0;
                foreach (SIGEEA_DetFacAsociado d in pDetalles)
                {
                    total += d.CanTotal_DetFacAsociado;
                }
                pFactura.CanTotal_FacAsociado   = total;
                pFactura.Incompleta_FacAsociado = true;
                pFactura.CanNeta_FacAsociado    = -1;
                dc.SIGEEA_FacAsociados.InsertOnSubmit(pFactura);
                dc.SubmitChanges();

                foreach (SIGEEA_DetFacAsociado d in pDetalles)
                {
                    d.FK_Id_PreProCompra       = dc.SIGEEA_spObtenerPrecioCompra(d.FK_Id_PreProCompra).First().PK_Id_PreProCompra;
                    d.FK_Id_FacAsociado        = pFactura.PK_Id_FacAsociado;
                    d.CanNeta_DetFacAsociado   = -1;
                    d.Cancelado_DetFacAsociado = false;
                    dc.SIGEEA_DetFacAsociados.InsertOnSubmit(d);
                }
                dc.SubmitChanges();
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Error al registrar: " + ex.Message);
            }
        }
Example #5
0
        private void RegistraEntrega()
        {
            try
            {
                AsociadoMantenimiento        asociadoM     = new AsociadoMantenimiento();
                List <SIGEEA_DetFacAsociado> listaDetalles = new List <SIGEEA_DetFacAsociado>();

                SIGEEA_FacAsociado factura = new SIGEEA_FacAsociado();
                factura.Estado_FacAsociado     = true;
                factura.FecEntrega_FacAsociado = DateTime.Now;
                factura.FK_Id_Asociado         = asociado.PK_Id_Asociado;
                factura.Numero_FacAsociado     = asociadoM.ObtenerNumeroFacturaEntrega();


                foreach (uc_IngresoProducto ip in stpContenedor.Children)
                {
                    SIGEEA_DetFacAsociado fac = new SIGEEA_DetFacAsociado();
                    fac.CanTotal_DetFacAsociado = ip.getCantidad();
                    fac.FK_Id_Lote             = ip.getLote();
                    fac.Mercado_DetFacAsociado = ip.getMercado();
                    fac.FK_Id_PreProCompra     = ip.getProducto();//Se le asigna la PK del producto, en la función de registrar de AsociadoMantenimiento se hace el cambio necesario.
                    listaDetalles.Add(fac);
                }
                asociadoM.RegistraEntrega(factura, listaDetalles);
                MessageBox.Show("Entrega registrada con éxito.", "SIGEEA", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                wnwFacturaEntrega ventana = new wnwFacturaEntrega(factura.PK_Id_FacAsociado, asociado.Codigo_Asociado);
                ventana.ShowDialog();
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al registrar: " + ex.Message, "SIGEEA", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Example #6
0
        private void btnFactura_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SIGEEA_DiagramaDataContext dc      = new SIGEEA_DiagramaDataContext();
                SIGEEA_FacAsociado         factura = dc.SIGEEA_FacAsociados.First(c => c.PK_Id_FacAsociado == Convert.ToInt32(txbFactura.Text));

                if (solicitud == true && (factura == null || factura.Estado_FacAsociado == false || factura.Incompleta_FacAsociado == true))
                {
                    throw new ArgumentException("La factura digitada no existe, está pendiente de finalización o ya fue cancelada.");
                }


                if (solicitud == false && (factura == null || factura.Incompleta_FacAsociado == false || factura.Estado_FacAsociado == false))
                {
                    throw new ArgumentException("La factura digitada no existe o su entrega ya fue completada y/o cancelada.");
                }


                if (solicitud == false)
                {
                    wnwCompletaEntrega ventana = new wnwCompletaEntrega(factura.PK_Id_FacAsociado);
                    ventana.ShowDialog();
                }
                else
                {
                    wnwFacturasPendientesPago ventana = new wnwFacturasPendientesPago(factura.PK_Id_FacAsociado);
                    ventana.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "SIGEEA", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        /// <summary>
        /// Obtiene la cantidad de producto neto pendiente de pago la factura con respecto a su cantidad neta
        /// </summary>
        /// <param name="pFactura"></param>
        public int SaldoFactura(int pFactura)
        {
            DataClasses1DataContext dc      = new DataClasses1DataContext();
            SIGEEA_FacAsociado      factura = dc.SIGEEA_FacAsociados.First(c => c.PK_Id_FacAsociado == pFactura);
            List <SIGEEA_spObtenerDetalleFacturaAsociadoResult> listaDetalles = dc.SIGEEA_spObtenerDetalleFacturaAsociado(factura.PK_Id_FacAsociado).ToList();
            int cantidadNeta = 0;

            foreach (SIGEEA_spObtenerDetalleFacturaAsociadoResult f in listaDetalles)
            {
                if (f.CanNeta_DetFacAsociado == -1 || f.Cancelado_DetFacAsociado == true)
                {
                    continue;
                }
                cantidadNeta += (int)f.CanNeta_DetFacAsociado;
            }
            return(cantidadNeta);
        }