示例#1
0
        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");
            }
        }
示例#2
0
        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());
        }
示例#3
0
        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);
        }
示例#4
0
        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 + ") ");
        }