Ejemplo n.º 1
0
        private void btnMaakFactuur_Click(object sender, EventArgs e)
        {
            opdracht         selectedContract = (opdracht)cbbID.SelectedItem;
            contract_factuur nieuweFactuur    = new contract_factuur();

            nieuweFactuur.opdracht      = selectedContract;
            nieuweFactuur.periode_begin = dtPeriodeBegin.Value;
            nieuweFactuur.periode_einde = dtPeriodeEinde.Value;

            TimeSpan aantaldagen = dtPeriodeEinde.Value - dtPeriodeBegin.Value;
            int      dagen       = aantaldagen.Days + 1;

            nieuweFactuur.prijs         = (selectedContract.contract_dagprijs * dagen) + ((selectedContract.contract_dagprijs * dagen) * 6 / 100);
            nieuweFactuur.betaald       = false;
            nieuweFactuur.betaling_memo = string.Empty;

            ContractManagement.addFactuur(nieuweFactuur);

            cbbFactuurID.DataSource = ContractManagement.getFacturenVanContract(selectedContract);

            if (ContractManagement.getFacturenVanContract(selectedContract).Any() == true)
            {
                contract_factuur laatste_factuur = ContractManagement.getFacturenVanContract(selectedContract).Last();
                dtPeriodeBegin.MinDate = laatste_factuur.periode_einde;
                dtPeriodeBegin.MaxDate = selectedContract.tot_datum;
                dtPeriodeEinde.MinDate = laatste_factuur.periode_einde;
                dtPeriodeEinde.MaxDate = selectedContract.tot_datum;

                dtPeriodeBegin.Value = laatste_factuur.periode_einde;

                //Als het contract korter is dan 1 maand, kunnen er geen facturen gemaakt worden voor 1 maand, dus factuur van begindatum tot einddatum.
                if (laatste_factuur.periode_einde.AddMonths(1) > selectedContract.tot_datum)
                {
                    dtPeriodeEinde.Value = selectedContract.tot_datum;
                }
                else
                {
                    dtPeriodeEinde.Value = laatste_factuur.periode_einde.AddMonths(1);
                }
            }
            else
            {
                dtPeriodeBegin.MinDate = selectedContract.vanaf_datum;
                dtPeriodeBegin.MaxDate = selectedContract.tot_datum;
                dtPeriodeEinde.MinDate = selectedContract.vanaf_datum;
                dtPeriodeEinde.MaxDate = selectedContract.tot_datum;

                dtPeriodeBegin.Value = selectedContract.vanaf_datum;

                //Als het contract korter is dan 1 maand, kunnen er geen facturen gemaakt worden voor 1 maand, dus factuur van begindatum tot einddatum.
                if (selectedContract.vanaf_datum.AddMonths(1) > selectedContract.tot_datum)
                {
                    dtPeriodeEinde.Value = selectedContract.tot_datum;
                }
                else
                {
                    dtPeriodeEinde.Value = selectedContract.vanaf_datum.AddMonths(1);
                }
            }
        }