private void validarDatosFactura() { if (string.IsNullOrWhiteSpace(textBoxNumeroFactura.Text)) { throw new CampoVacioException("Numero Factura"); } if (string.IsNullOrWhiteSpace(textBoxImporte.Text)) { throw new CampoVacioException("Importe"); } if (string.IsNullOrWhiteSpace(comboBoxEmpresa.Text)) { throw new CampoVacioException("Empresa"); } if (dateTimePickerFechaVencimiento == null) { throw new CampoVacioException("Fecha de Vencimiento"); } if (Importe <= 0) { throw new ValorNegativoException("Importe"); } if (esFacturaYaAgregada(NumeroFactura)) { throw new FacturaYaAgregadaException(NumeroFactura.ToString()); } if (!Factura.esFacturaExistente(NumeroFactura)) { throw new FacturaInexistenteException(NumeroFactura.ToString()); } if (!Factura.esFacturaHabilitada(NumeroFactura)) { throw new FacturaInhabilitadaException(NumeroFactura.ToString()); } if (Factura.estaCobrada(NumeroFactura)) { throw new FacturaYaCobradaException(NumeroFactura.ToString()); } if (!Factura.esFacturaDeLaEmpresa(NumeroFactura, empresaSeleccionada.id)) { throw new EmpresaFacturaException(NumeroFactura.ToString(), empresaSeleccionada.nombre); } if (!Factura.verificaFechaVencimiento(NumeroFactura, FechaVencimiento)) { throw new FacturaFechaVencimientoException(NumeroFactura.ToString(), FechaVencimiento.ToString()); } if (!Factura.esImporteCorrecto(NumeroFactura, Importe)) { throw new ImporteFacturaException(NumeroFactura.ToString()); } ComparadorFechas comparar = new ComparadorFechas(); if (comparar.esMenor(FechaVencimiento, FechaCobro)) { throw new ExpireDateBeforeException("Factura vencida controle las fechas"); } }
public void ActualizarFactura() { string sql_insert = ""; sql_insert = string.Format("insert into Factura values({0},'{1}',{2},{3},{4},'{5}')", new string[] { NumeroFactura.ToString(), FechaFactura.ToString(), ID_Hotel.ToString(), ID_TipoDocumento.ToString(), NumDocumento.ToString(), NombreHuesped }); DB.Grabar_Modificar_Eliminar(sql_insert); this.DB.consultaDB("select * from Factura where num_factu=" + NumeroFactura.ToString()); }
public void ActualizarDetalleFactura() { string sql_insert = ""; sql_insert = string.Format("insert into Detalle_Factura values({0},{1},'{2}',{3},{4})", new string[] { NumeroFactura.ToString(), CodigoProducto.ToString(), DescripcionProducto, PrecioVendido.ToString(), CantidadVendida.ToString() }); DB.Grabar_Modificar_Eliminar(sql_insert); }
public void AplicarNotaCreditoAFactura() { decimal valorFacturaFactura = 0, valorIvaFactura = 0, valorFleteFactura = 0, valorIvaFleteFactura = 0, valorRetencionFactura = 0, valorAbonoFactura = 0, valorSaldoFactura = 0; decimal valorFacturaNotaDevolucion = 0, valorIvaNotaDevolucion = 0, valorFleteNotaDevolucion = 0, valorIvaFleteNotaDevolucion = 0, valorRetencionNotaDevolucion = 0, valorAbonoNotaDevolucion = 0, valorSaldoNotaDevolucion = 0; sqlStrings.Clear(); CargarValoresFacturaCliente(PrefijoFactura, NumeroFactura, ref valorFacturaFactura, ref valorIvaFactura, ref valorFleteFactura, ref valorIvaFleteFactura, ref valorRetencionFactura, ref valorAbonoFactura, ref valorSaldoFactura); CargarValoresFacturaCliente(PrefijoFactura, NumeroFactura, ref valorFacturaNotaDevolucion, ref valorIvaNotaDevolucion, ref valorFleteNotaDevolucion, ref valorIvaFleteNotaDevolucion, ref valorRetencionNotaDevolucion, ref valorAbonoNotaDevolucion, ref valorSaldoNotaDevolucion); valorAbonoNotaDevolucion = 0; // que pasa con el saldo del anticpo que se pasa para la nueva factura ?? decimal valorSaldo = 0; if (valorSaldoFactura <= valorSaldoNotaDevolucion) { valorSaldo = valorSaldoFactura; } else { valorSaldo = valorSaldoNotaDevolucion; } decimal vlrTotalNota = valorFacturaFactura + valorIvaFactura + valorFleteFactura + valorIvaFleteFactura - valorRetencionFactura; //Ahora creamos la relacion entre la factura y la nota devolucion con el abono. sqlStrings.Add("INSERT INTO DBXSCHEMA.DDETALLEFACTURACLIENTE (PDOC_CODIGO,MFAC_NUMEDOCU,PDOC_CODDOCREF,DDET_NUMEDOCU,DDET_VALODOCU,DDET_OBSER) VALUES('" + PrefijoFactura + "'," + NumeroFactura + ",'" + PrefijoNotaDevolucion + "'," + NumeroNotaDevolucion + "," + vlrTotalNota.ToString() + ",'Abono a la Factura " + PrefijoFactura + "-" + NumeroFactura.ToString() + " por devolucion')"); //Ahora creamos la relacion entre la nota devolucion y la factura con el abono. sqlStrings.Add("INSERT INTO DBXSCHEMA.DDETALLEFACTURACLIENTE (PDOC_CODIGO,MFAC_NUMEDOCU,PDOC_CODDOCREF,DDET_NUMEDOCU,DDET_VALODOCU,DDET_OBSER) VALUES('" + PrefijoNotaDevolucion + "'," + NumeroNotaDevolucion + ",'" + PrefijoFactura + "'," + NumeroFactura + "," + valorSaldo.ToString() + ",'Abono a la Nota Devolucion " + PrefijoNotaDevolucion + "-" + NumeroNotaDevolucion.ToString() + "')"); //Ahora cambiamos la vigencia de la factura a cancelada (C) y abonamos el saldo obtenido a la factura. sqlStrings.Add("UPDATE mfacturacliente SET tvig_vigencia='A', mfac_valoabon=mfac_valoabon+" + valorSaldo.ToString() + " WHERE pdoc_codigo='" + PrefijoFactura + "' AND mfac_numedocu=" + NumeroFactura + ""); //Ahora cambiamos la vigencia de la factura a cancelada (A) y abonamos el saldo obtenido a la nota devolucion. sqlStrings.Add("UPDATE mfacturacliente SET tvig_vigencia='A', mfac_valoabon=mfac_valoabon+" + valorSaldo.ToString() + ", MFAC_PAGO = MFAC_FACTURA WHERE pdoc_codigo='" + PrefijoNotaDevolucion + "' AND mfac_numedocu=" + NumeroNotaDevolucion + ""); //Ahora cambiamos la vigencia de la factura a cancelada (C) si el saldo obtenido de la nota devolucion es CERO. sqlStrings.Add("UPDATE mfacturacliente SET tvig_vigencia='C' WHERE MFAC_VALOFACT + MFAC_VALOIVA + MFAC_VALOFLET + MFAC_VALOIVAFLET - MFAC_VALORETE = MFAC_VALOABON AND ( pdoc_codigo='" + PrefijoFactura + "' AND mfac_numedocu=" + NumeroFactura + " OR pdoc_codigo='" + PrefijoNotaDevolucion + "' AND mfac_numedocu=" + NumeroNotaDevolucion + ") "); }