/// <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); } }
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); } }
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); }