Esempio n. 1
0
        public override void New()
        {
            invoice = new DAL.InvoiceHeader()
            {
                Drawer        = Session.Defaults.Drawer,
                Date          = DateTime.Now,
                PostedToStore = true,
                PostDate      = DateTime.Now,
                Code          = GetNewInvoiceCode(),
            };

            switch (type)
            {
            case InvoiceType.PurchaseReturn:
            case InvoiceType.Purchase:
                invoice.PartType = (int)PartType.Vendor;
                invoice.PartID   = (int)Session.Defaults.Vendor;
                invoice.Branch   = Session.Defaults.RawStore;
                break;

            case InvoiceType.SalesReturn:
            case InvoiceType.Sales:
                invoice.PartType = (int)PartType.Customer;
                invoice.PartID   = (int)Session.Defaults.Customer;
                invoice.Branch   = Session.Defaults.Store;
                break;

            default:
                throw new NotImplementedException();
            }

            base.New();
            MoveFocusToGrid();
        }
Esempio n. 2
0
        public void Save()
        {
            DAL.CustomersDataContext dc = new DAL.CustomersDataContext();
            DAL.InvoiceHeader dalInvoiceHeader = null;

            if (this.Id == 0)
            {
                dalInvoiceHeader = new DAL.InvoiceHeader();
                map(this, dalInvoiceHeader);
                dc.InvoiceHeaders.InsertOnSubmit(dalInvoiceHeader);
            }
            else
            {
                dalInvoiceHeader = findRecord(dc, this.Id);
                map(this, dalInvoiceHeader);
            }

            dc.SubmitChanges();
            this.Id = dalInvoiceHeader.Id;

            // save all new objects and update existing ones if modified
            foreach (var item in this.InvoiceDetails)
            {
                item.SaveDependent(dc, dalInvoiceHeader);
            }
            // delete all missing objects
            foreach (var item in InvoiceDetail.LoadWithInvoiceId(dc, this.Id))
            {
                if (!this.InvoiceDetails.Contains(item))
                    InvoiceDetail.Delete(dc, item);
            }
        }