示例#1
0
        public void Add(
            [DataBind("contacts")] Contact[] contacts,
            uint clientId,
            string comment)
        {
            var client  = Client.FindAndCheck <Client>(clientId);
            var address = new Address(client);

            RecreateOnlyIfNullBinder.Prepare(this);
            BindObjectInstance(address, "address", AutoLoadBehavior.NewRootInstanceIfInvalidKey);
            if (client.Payers.Count > 1 && address.AvaliableForUsers != null && address.AvaliableForUsers.Count > 0)
            {
                address.AvaliableForUsers.Each(u => DbSession.Refresh(u));
                if (address.AvaliableForUsers.All(u => u.Payer.Id != address.LegalEntity.Payer.Id))
                {
                    Add(client.Id);
                    PropertyBag["client"]  = client;
                    PropertyBag["address"] = address;
                    Error("Ошибка регистрации: попытка зарегистрировать пользователя и адрес в различных Плательщиках");
                    return;
                }
            }
            client.AddAddress(address);
            address.UpdateContacts(contacts);
            DbSession.Save(address);
            address.Maintain(DbSession);

            address.CreateFtpDirectory();
            address.AddBillingComment(comment);
            new Mailer(DbSession).Registred(address, comment, Defaults);
            Notify("Адрес доставки создан");
            RedirectUsingRoute("client", "show", new { client.Id });
        }
示例#2
0
        public void Edit(uint id)
        {
            Binder.Validator = Validator;

            var act = DbSession.Load <Act>(id);

            PropertyBag["act"]        = act;
            PropertyBag["references"] = DbSession.Query <Nomenclature>().OrderBy(n => n.Name).ToList();

            if (IsPost)
            {
                RecreateOnlyIfNullBinder.Prepare(this, "act.Parts");

                BindObjectInstance(act, "act");
                if (IsValid(act))
                {
                    act.CalculateSum();
                    DbSession.Save(act);
                    Mail().ActModified(act);
                    Notify("Сохранено");
                    RedirectUsingRoute("Acts", "Edit", new { act.Id });
                }
            }
        }
示例#3
0
        public void Edit(uint id)
        {
            RenderView("/Payers/NewInvoice");

            var invoice = DbSession.Load <Invoice>(id);

            PropertyBag["invoice"]    = invoice;
            PropertyBag["references"] = DbSession.Query <Nomenclature>().OrderBy(n => n.Name).ToList();

            if (IsPost)
            {
                RecreateOnlyIfNullBinder.Prepare(this, "invoice.Parts");

                BindObjectInstance(invoice, "invoice");
                if (IsValid(invoice))
                {
                    invoice.CalculateSum();
                    Mail().InvoiceModified(invoice);
                    DbSession.Save(invoice);
                    Notify("Сохранено");
                    Redirect("Invoices", "Edit", new { invoice.Id });
                }
            }
        }