예제 #1
0
        private void ConfirmContract(int?id)
        {
            IncidentalContract incidentalContract = db.IncidentalContracts.Find(id);

            if (incidentalContract == null)
            {
                return;
            }

            incidentalContract.IncidentalContracStatus = ContractStatus.Confirmed;

            switch (incidentalContract.IncidentalContracTypeId)
            {
            case 1:
                var servicecontract = db.ServiceIncidentalContracts.Where(w => w.IncidentalContractId == id).FirstOrDefault();
                servicecontract.IncidentalContracStatus = ContractStatus.Confirmed;
                servicecontract.ControllerDeliverenceConfirmationDate = DateTime.Now.Date;
                break;

            case 2:
                var productcontract = db.ProductIncidentalContracts.Where(w => w.IncidentalContractId == id).FirstOrDefault();
                productcontract.IncidentalContracStatus = ContractStatus.Confirmed;
                productcontract.ControllerDeliverenceConfirmationDate = DateTime.Now.Date;
                break;

            case 3:
                var trainningcontract = db.TrainningIncidentalContracts.Where(w => w.IncidentalContractId == id).FirstOrDefault();
                trainningcontract.IncidentalContracStatus = ContractStatus.Confirmed;
                trainningcontract.ControllerDeliverenceConfirmationDate = DateTime.Now.Date;
                break;
            }

            db.SaveChanges();
        }
예제 #2
0
        public ActionResult ViewService(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IncidentalContract            incidentalContract        = db.IncidentalContracts.Find(id);
            ServiceIncidentalContract     serviceIncidentalContract = db.ServiceIncidentalContracts.Where(w => w.IncidentalContractId == id).FirstOrDefault();
            List <IncidentalContractItem> incidentalContractItems   = db.IncidentalContractItems.Where(w => w.IncidentalContractId == id).ToList();

            ServiceContractViewModel serviceContractViewModel = Mapper.Map <ServiceContractViewModel>(incidentalContract);

            serviceContractViewModel = Mapper.Map <ServiceContractViewModel>(serviceIncidentalContract);

            serviceContractViewModel.ContractTitle = incidentalContract.ContractTitle;
            serviceContractViewModel.ContractItems = incidentalContractItems;


            if (serviceContractViewModel == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IncidentalContracOwnerId      = new SelectList(db.UserAccounts, "UserAccountId", "UserName", serviceContractViewModel.IncidentalContracOwnerId);
            ViewBag.IncidentalContracControllerId = new SelectList(db.UserAccounts, "UserAccountId", "UserName", serviceContractViewModel.IncidentalContracControllerId);
            ViewBag.IncidentalContracProviderId   = new SelectList(db.UserAccounts, "UserAccountId", "UserName", serviceContractViewModel.IncidentalContracProviderId);
            ViewBag.IncidentalContracTypeId       = new SelectList(db.IncidentalContracTypes, "IncidentalContracTypeId", "IncidentalContracTypeTitle", serviceContractViewModel.IncidentalContracTypeId);
            ViewBag.OwnerMunicipalEntityId        = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", serviceContractViewModel.OwnerMunicipalEntityId);
            ViewBag.ProviderMunicipalEntityId     = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", serviceContractViewModel.ProviderMunicipalEntityId);
            return(View(serviceContractViewModel));
        }
예제 #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            IncidentalContract incidentalContract = db.IncidentalContracts.Find(id);

            db.IncidentalContracts.Remove(incidentalContract);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #4
0
 public ActionResult Edit([Bind(Include = "IncidentalContractId,ContractTitle,IncidentalContracType,OwnerMunicipalEntityId,IncidentalContracOwnerId,IncidentalContracOwnerName,IncidentalContracControllerId,IncidentalContracControllerName,ProviderMunicipalEntityId,IncidentalContracProviderId,IncidentalContracProviderName,IncidentalContracInvoiceNumber")] IncidentalContract incidentalContract)
 {
     if (ModelState.IsValid)
     {
         db.Entry(incidentalContract).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.OwnerMunicipalEntityId    = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", incidentalContract.OwnerMunicipalEntityId);
     ViewBag.ProviderMunicipalEntityId = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", incidentalContract.ProviderMunicipalEntityId);
     return(View(incidentalContract));
 }
예제 #5
0
        // GET: IncidentalContracts/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IncidentalContract incidentalContract = db.IncidentalContracts.Find(id);

            if (incidentalContract == null)
            {
                return(HttpNotFound());
            }
            return(View(incidentalContract));
        }
예제 #6
0
        // GET: IncidentalContracts/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IncidentalContract incidentalContract = db.IncidentalContracts.Find(id);

            if (incidentalContract == null)
            {
                return(HttpNotFound());
            }
            ViewBag.OwnerMunicipalEntityId    = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", incidentalContract.OwnerMunicipalEntityId);
            ViewBag.ProviderMunicipalEntityId = new SelectList(db.MunicipalEntities, "MunicipalEntityId", "MunicipalEntityName", incidentalContract.ProviderMunicipalEntityId);
            return(View(incidentalContract));
        }
예제 #7
0
        // GET: Invoices/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Invoice invoice = db.Invoices.Find(id);

            invoice.InvoiceItems = db.InvoiceItems.Where(w => w.InvoiceId == id).ToList();

            IncidentalContract contract = db.IncidentalContracts.Where(w => w.IncidentalContracInvoiceNumber == invoice.InvoiceNumber).FirstOrDefault();

            ViewBag.IncidentalContracId = contract.IncidentalContractId;

            if (invoice == null)
            {
                return(HttpNotFound());
            }
            return(View(invoice));
        }
예제 #8
0
        private void CreateInvoice(int?id)
        {
            IncidentalContract incidentalContract = db.IncidentalContracts.Find(id);

            if (incidentalContract == null)
            {
                return;
            }

            var invoice = new Invoice();

            var issuer   = db.UserAccounts.Find(incidentalContract.IncidentalContracProviderId).MunicipalEntity;
            var customer = db.UserAccounts.Find(incidentalContract.IncidentalContracOwnerId).MunicipalEntity;

            invoice.InvoiceIssuerName    = issuer.MunicipalEntityName;
            invoice.InvoiceIssuerAddress = issuer.MunicipalEntityAddress;
            invoice.InvoiceIssuerBtw     = issuer.MunicipalEntityBtw;
            invoice.InvoiceIssuerKvk     = issuer.MunicipalEntityKvk;
            invoice.InvoiceIssuerIban    = issuer.MunicipalEntityIban;

            invoice.InvoiceCustomerName   = customer.MunicipalEntityName;
            invoice.InvoiceCustomeAddress = customer.MunicipalEntityAddress;
            invoice.InvoiceCustomeBtw     = customer.MunicipalEntityBtw;
            invoice.InvoiceCustomeKvk     = customer.MunicipalEntityKvk;

            invoice.InvoiceDescription = "";
            invoice.InvoiceDate        = DateTime.Now.Date;
            invoice.InvoiceDueDate     = DateTime.Now.AddMonths(1).Date;

            decimal InvoiceValueSum = 0M;
            decimal InvoiceVatSum   = 0M;



            foreach (var item in db.IncidentalContractItems.Where(w => w.IncidentalContractId == id).ToList())
            {
                var invoiceItem = new InvoiceItem();

                invoiceItem.Currency    = "EUR";
                invoiceItem.Description = item.IncidentalContractItemDescription;
                invoiceItem.Quantity    = item.IncidentalContractItemQuantity;
                invoiceItem.UnitPrice   = item.IncidentalContractItemValue;
                invoiceItem.VatPercent  = item.IncidentalContractItemVat;
                invoiceItem.TotalPrice  = item.IncidentalContractItemQuantity * item.IncidentalContractItemValue;
                invoiceItem.Description = item.IncidentalContractItemDescription;

                invoiceItem.ProductIncomeCode  = item.ProductIncomeCode;
                invoiceItem.ProductExpenseCode = item.ProductExpenseCode;
                invoiceItem.BudgetCode         = item.BudgetCodeId;

                InvoiceValueSum += invoiceItem.TotalPrice;
                InvoiceVatSum   += (invoiceItem.TotalPrice * ((decimal)invoiceItem.VatPercent / 100));

                invoice.InvoiceItems.Add(invoiceItem);
            }

            invoice.InvoiceValue      = InvoiceValueSum;
            invoice.InvoiceVatTotal   = InvoiceVatSum;
            invoice.InvoiceValueTotal = InvoiceValueSum + InvoiceVatSum;

            //here call rest API, for this exercise we will write it to the database directly
            db.Invoices.Add(invoice);
            db.SaveChanges();

            foreach (var item in db.IncidentalContractItems.Where(w => w.IncidentalContractId == id).ToList())
            {
                var budget      = db.Budgets.Where(w => w.BudgetIdCode == item.BudgetCodeId).FirstOrDefault();
                var transaction = new BudgetBalanceTransaction();

                transaction.BudgetBalanceWithdrawal       = item.IncidentalContractItemQuantity * item.IncidentalContractItemValue;
                transaction.BudgetBalanceWithdrawalSource = invoice.InvoiceNumber;
                transaction.OwnerBudgetId = budget.BudgetId;

                db.BudgetBalanceTransactions.Add(transaction);

                budget.BudgetBalance -= transaction.BudgetBalanceWithdrawal;
            }


            incidentalContract.IncidentalContracInvoiceNumber = invoice.InvoiceNumber;
            db.SaveChanges();
        }