예제 #1
0
        public static CheckResult ValidateSave(DSModel db, InvoiceModel model)
        {
            CheckResult res = new CheckResult(model);

            if (model.CompanyID == 0)
            {
                res.AddError("Please choose a Company!", model.GetName(p => p.CompanyID));
            }
            if (model.LocationID == 0)
            {
                res.AddError("Please choose a Location!", model.GetName(p => p.LocationID));
            }
            if (model.InvoicePeriodFrom == DateTime.MinValue)
            {
                res.AddError("Please enter a date for Period From!", model.GetName(p => p.InvoicePeriodFrom));
            }
            if (model.InvoicePeriodTo == DateTime.MinValue)
            {
                res.AddError("Please enter a date for Period To!", model.GetName(p => p.InvoicePeriodTo));
            }
            if (model.InvoicePeriodTo < model.InvoicePeriodFrom)
            {
                res.AddError("The date for Pertiod To cannot be earlier than Period From!", model.GetName(p => p.InvoicePeriodTo));
            }

            return(res);
        }
        private static void InsertInvoice(DSModel db, KeyBinder key, InvoiceModel model)
        {
            var poco = new Invoice();

            poco.CompanyID         = model.CompanyID;
            poco.LocationID        = model.LocationID;
            poco.InvoiceTypeID     = model.InvoiceTypeID;
            poco.InvoiceNumber     = InvoiceRepository.NextNumber(db, model);
            poco.InvoiceIssueDate  = model.InvoiceIssueDate;
            poco.InvoicePeriodFrom = model.InvoicePeriodFrom;
            poco.InvoicePeriodTo   = model.InvoicePeriodTo;
            poco.InvoiceNote       = model.InvoiceNote;
            poco.LateCharge        = model.LateCharge;
            poco.LateChargeDays    = model.LateChargeDays;
            poco.IsConfirmed       = model.IsConfirmed;
            poco.UserID            = model.UserID;
            poco.LastUpdateTime    = model.LastUpdateTime;
            key.AddKey(poco, model, model.GetName(p => p.InvoiceID));
            db.Add(poco);

            foreach (var d in model.Details)
            {
                var det = new InvoicesDetail();
                det.InvoiceDetailDate          = d.InvoiceDetailDate;
                det.InvoiceDetailName          = d.InvoiceDetailName;
                det.InvoiceDetailTotalTime     = d.InvoiceDetailTotalTime;
                det.InvoiceDetailOverTime      = d.InvoiceDetailOverTime;
                det.InvoiceDetailRegularRate   = d.InvoiceDetailRegularRate;
                det.InvoiceDetailOverRate      = d.InvoiceDetailOverRate;
                det.InvoiceDetailRegularPay    = d.InvoiceDetailRegularPay;
                det.InvoiceDetailOvertimePay   = d.InvoiceDetailOvertimePay;
                det.InvoiceDetailGroupName     = d.InvoiceDetailGroupName;
                det.InvoiceDetailGroupPosition = d.InvoiceDetailGroupPosition;
                det.Invoice = poco;
                key.AddKey(det, d, d.GetName(p => p.InvoiceDetailID));
                key.AddKey(poco, d, d.GetName(p => p.InvoiceID));
                poco.InvoicesDetails.Add(det);
                db.Add(det);
            }
        }
예제 #3
0
        private void BindModel(InvoiceModel mod)
        {
            BindingSource bsMod = new BindingSource();

            bsMod.DataSource = mod;

            InvoiceNumber.DataBindings.Clear();
            InvoiceNumber.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoiceNumber), true, DataSourceUpdateMode.OnPropertyChanged);

            InvoiceTypeID.DataBindings.Clear();
            InvoiceTypeID.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoiceTypeID), true, DataSourceUpdateMode.OnPropertyChanged);

            InvoiceIssueDate.DataBindings.Clear();
            InvoiceIssueDate.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoiceIssueDate), true, DataSourceUpdateMode.OnPropertyChanged);

            IsConfirmed.DataBindings.Clear();
            IsConfirmed.DataBindings.Add("Checked", bsMod, mod.GetName(p => p.IsConfirmed), true, DataSourceUpdateMode.OnPropertyChanged);

            InvoicePeriodFrom.DataBindings.Clear();
            InvoicePeriodFrom.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoicePeriodFrom), true, DataSourceUpdateMode.OnPropertyChanged);

            InvoicePeriodTo.DataBindings.Clear();
            InvoicePeriodTo.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoicePeriodTo), true, DataSourceUpdateMode.OnPropertyChanged);

            InvoiceNote.DataBindings.Clear();
            InvoiceNote.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.InvoiceNote), true, DataSourceUpdateMode.OnPropertyChanged);

            LateCharge.DataBindings.Clear();
            LateCharge.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.LateCharge), true, DataSourceUpdateMode.OnPropertyChanged);

            LateChargeDays.DataBindings.Clear();
            LateChargeDays.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.LateChargeDays), true, DataSourceUpdateMode.OnPropertyChanged);

            TotalAmount.DataBindings.Clear();
            TotalAmount.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.TotalAmount), true, DataSourceUpdateMode.OnPropertyChanged);

            ReceiverCompany.DataBindings.Clear();
            ReceiverCompany.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.ReceiverCompany), true, DataSourceUpdateMode.OnPropertyChanged);

            ReceiverAddress.DataBindings.Clear();
            ReceiverAddress.DataBindings.Add("EditValue", bsMod, mod.GetName(p => p.ReceiverAddress), true, DataSourceUpdateMode.OnPropertyChanged);

            ShipperCompany.Text = GLOB.Company.CompanyName;
            ShipperAddress.Text = GLOB.Company.CompanyInvoiceAddress;

            BindingSource bsDetails = new BindingSource();

            bsDetails.DataSource = mod.Details;

            gridControlServices.DataSource = bsDetails;
        }