private void SetControlsState(ContractTemplate row, PXCache sender)
        {
            Contracts.Cache.AllowInsert = false;
            Contracts.Cache.AllowUpdate = false;
            Contracts.Cache.AllowDelete = false;
            if (row != null)
            {
                #region Setup Controls for Multi-Currency
                PXUIFieldAttribute.SetVisible <ContractTemplate.curyID>(sender, row, IsMultyCurrency);
                PXUIFieldAttribute.SetVisible <ContractTemplate.rateTypeID>(sender, row, IsMultyCurrency);
                PXUIFieldAttribute.SetVisible <ContractTemplate.allowOverrideCury>(sender, row, IsMultyCurrency);
                PXUIFieldAttribute.SetVisible <ContractTemplate.allowOverrideRate>(sender, row, IsMultyCurrency);
                #endregion

                PXUIFieldAttribute.SetEnabled <ContractTemplate.isContinuous>(sender, row, row.Type == Contract.type.Renewable);

                #region Contract Type

                PXUIFieldAttribute.SetEnabled <ContractTemplate.autoRenew>(sender, row, row.Type != Contract.type.Unlimited);
                PXUIFieldAttribute.SetEnabled <ContractTemplate.duration>(sender, row, row.Type != Contract.type.Unlimited);
                PXUIFieldAttribute.SetEnabled <ContractTemplate.durationType>(sender, row, row.Type != Contract.type.Unlimited);
                PXUIFieldAttribute.SetEnabled <ContractTemplate.expireDate>(sender, row, row.Type != Contract.type.Unlimited);
                PXUIFieldAttribute.SetEnabled <ContractTemplate.isContinuous>(sender, row, row.Type != Contract.type.Unlimited);
                PXUIFieldAttribute.SetEnabled <ContractTemplate.refundPeriod>(sender, row, row.Refundable == true);
                #endregion

                ContractDetail detail = PXSelect <ContractDetail, Where <ContractDetail.contractID, Equal <Current <ContractTemplate.contractID> > > > .SelectWindowed(this, 0, 1);

                PXUIFieldAttribute.SetEnabled <ContractTemplate.curyID>(sender, row, detail == null ? true : false);
            }
            AttributeGroup.Cache.AllowInsert = row.ContractID > 0 || IsCopyPasteContext;
        }
Beispiel #2
0
        public static ContractDetail LoadContractDetail(string nationalId, SqlConnection con)
        {
            var detail = new ContractDetail();

            detail.NationalId = nationalId;

            var sql = @"SELECT *
					FROM Contract C
					WHERE C.ContractId IN
					(
						SELECT Fk_Contract
						FROM ContractIndividual CI
						WHERE CI.NationalId = @nationalId
					)"                    ;

            using (var cmd = new SqlCommand(sql, con))
            {
                cmd.Parameters.AddRange(new[] {
                    new SqlParameter("@nationalId", nationalId),
                });

                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        detail.Contracts.Add(LoadContract(reader));
                    }
                }
            };

            return(detail);
        }
Beispiel #3
0
        public ActionResult Edit(int id)
        {
            ContractDetail e = repo.Get(id);

            //e.NewCategoryFullName = e.CategoryFullName;
            return(View(e));
        }
Beispiel #4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            ContractDetail _newContract = new ContractDetail();

            if (IsEdit == true)
            {
                _newContract = _db.GetContractById(ContractId);
            }


            _newContract.CustomerId    = CustomerId;
            _newContract.BasePrice     = Convert.ToDecimal(txtBasePrice.Text);
            _newContract.BaseUsers     = Convert.ToInt32(txtBaseUsers.Text);
            _newContract.CostExtraUser = Convert.ToDecimal(txtCostOfExtraUser.Text);
            _newContract.MonthlyCharge = Convert.ToDecimal(txtMonthlyCharge.Text);
            _newContract.NoOfUsers     = Convert.ToInt32(txtNumberOfUsers.Text);
            _newContract.SignOffGoLive = dtSignOffDate.Value;
            _newContract.RRARR         = Convert.ToDecimal(txtRRARR.Text);
            _newContract.databaseID    = databaseId;
            if (IsEdit == true)
            {
                _db.SaveContractType(_newContract);
                _db.SaveChanges();
                MessageBox.Show("Contract has been Update", "Contract Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            else
            {
                _db.AddToContract(_newContract);
                _db.SaveChanges();
                MessageBox.Show("Contract has been Created", "Contract Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,ContractId,SupportTypeId,ServicePrice,ObjectsId")] ContractDetail contractDetail)
        {
            if (id != contractDetail.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(contractDetail);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ContractDetailExists(contractDetail.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ContractId"]    = new SelectList(_context.Contract, "Id", "Id", contractDetail.ContractId);
            ViewData["ObjectsId"]     = new SelectList(_context.Set <Objects>(), "Id", "Floor", contractDetail.ObjectsId);
            ViewData["SupportTypeId"] = new SelectList(_context.Set <SupportType>(), "Id", "Defenition", contractDetail.SupportTypeId);
            return(View(contractDetail));
        }
        private void ConfigureContract(ContractDetail detail)
        {
            detail.DateAcepted = DateTime.Now.Date;
            var valuesToFill = new Content(
                new FieldContent("contract_type", profileName),
                new FieldContent("contract_date", detail.DateAcepted.ToShortDateString()),
                new FieldContent("customer_name", detail.Customer.ToString()),
                new FieldContent("customer_dni", detail.Customer.Dni),
                new FieldContent("customer_address", detail.Customer.ComercialInfo.Address),
                new FieldContent("customer_city", detail.Customer.ComercialInfo.City.CityName),
                new FieldContent("customer_single_profile_name", singleProfileName),
                new FieldContent("customer_action", customerAction),
                new FieldContent("contract_percent", contract.ContractCommission.ToString("N2")),
                new FieldContent("additional_value", detail.AdditionalValue.ToString("N2")),
                new FieldContent("fine_value", detail.FineValue.ToString("N2")),
                new FieldContent("start_date", contract.StartDate.ToShortDateString()),
                new FieldContent("end_date", contract.EndDate.ToShortDateString())
                );

            using (var outputDocument = new TemplateProcessor(fileName).SetRemoveContentControls(true)){
                outputDocument.FillContent(valuesToFill);
                outputDocument.SaveChanges();
            }
            var document = new Word2Pdf {
                InputLocation  = fileName,
                OutputLocation = PdfFilePath
            };

            document.Word2PdfCOnversion();
            File.Delete(fileName);
        }
Beispiel #7
0
        protected virtual void ContractDetail_RowInserting(PXCache sender, PXRowInsertingEventArgs e)
        {
            ContractDetail row = e.Row as ContractDetail;

            if (row != null)
            {
                row.ContractID = Task.Current.ProjectID;

                #region Check for Uniqueness
                if (row.InventoryID.HasValue)
                {
                    ContractDetail item = PXSelect <ContractDetail,
                                                    Where <ContractDetail.inventoryID, Equal <Required <InventoryItem.inventoryID> >,
                                                           And <ContractDetail.contractID, Equal <Current <PMTask.projectID> >,
                                                                And <ContractDetail.taskID, Equal <Current <PMTask.taskID> > > > > > .SelectWindowed(this, 0, 1, row.InventoryID);

                    if (item != null && item.ContractDetailID != row.ContractDetailID)
                    {
                        sender.RaiseExceptionHandling <ContractDetail.inventoryID>(row, row.InventoryID, new PXException(CT.Messages.ItemNotUnique));
                        e.Cancel = true;
                    }
                }
                #endregion
            }
        }
 public void SaveContractType(ContractDetail _contract)
 {
     try
     {
         using (var ctx = new customerDbEntities())
         {
             ctx.ContractDetails.Add(_contract);
             ctx.Entry(_contract).State = System.Data.Entity.EntityState.Modified;
             ctx.SaveChanges();
         }
     }
     catch (DbEntityValidationException e)
     {
         foreach (var eve in e.EntityValidationErrors)
         {
             Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                               eve.Entry.Entity.GetType().Name, eve.Entry.State);
             foreach (var ve in eve.ValidationErrors)
             {
                 Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                   ve.PropertyName, ve.ErrorMessage);
             }
         }
         throw;
     }
 }
Beispiel #9
0
        public virtual void ContractItem_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            ContractItem row = (ContractItem)e.Row;

            if (row != null)
            {
                SetControlsState(cache, row);
                ContractDetail detail = PXSelect <ContractDetail, Where <ContractDetail.contractItemID, Equal <Current <ContractItem.contractItemID> > > > .SelectWindowed(this, 0, 1);

                ContractItems.Cache.AllowDelete = detail == null;
                PXUIFieldAttribute.SetEnabled <ContractItem.curyID>(cache, row, detail == null);

                PXDefaultAttribute.SetPersistingCheck <ContractItem.recurringItemID>(cache, row, row.RecurringType == RecurringOption.None ? PXPersistingCheck.Nothing : PXPersistingCheck.NullOrBlank);
                PXUIFieldAttribute.SetRequired <ContractItem.recurringItemID>(cache, row.RecurringType != RecurringOption.None);
                string message = null;
                if (row.BaseItemID != null)
                {
                    PXUIFieldAttribute.SetWarning <ContractItem.baseItemID>(cache, row, !IsValidBasePrice(this, row, ref message) ? Messages.ItemNotPrice : null);
                }
                if (row.RecurringItemID != null)
                {
                    PXUIFieldAttribute.SetWarning <ContractItem.recurringItemID>(cache, row, !IsValidRecurringPrice(this, row, ref message) ? Messages.ItemNotPrice : null);
                }
                if (row.RenewalItemID != null)
                {
                    PXUIFieldAttribute.SetWarning <ContractItem.renewalItemID>(cache, row, !IsValidRenewalPrice(this, row, ref message) ? Messages.ItemNotPrice : null);
                }
            }
        }
        public void DetailsTest()
        {
            TestDeploymentContext tdc = new TestDeploymentContext();

            //adding one contract, as the contract requires a supplier id
            ContractDetail x = new ContractDetail()
            {
                Contract_ID        = 0, Supplier_ID = 0, ContractStartDate = new DateTime(10, 05, 2019),
                ContractFinishDate = new DateTime(10, 05, 2020), Servicetype = Service.Waste, PriceDescription = "Hourly Price", Price = 22.00,
                VatRate            = 0.135, PriceUpdatedate = new DateTime(01 / 01 / 2019)
            };

            tdc.ContractDetail.Add(x);
            Assert.IsNotNull(x);


            tdc.Supplier.Add(new Supplier()
            {
                Supplier_ID = 0, SupplierNumber = "SN000", SupplierName = "Tipperary Water", SupplierAddress = "5 Cherry Orchard Industrial Estate, Ballyfermot, Dublin 10.", SupplierCounty = "Dublin", SupplierContact = "Lana kelly", SupplierEMail = "*****@*****.**"
            });
            var controller = new SuppliersController(tdc);
            var result     = controller.Details(0);

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Supplier y = new Supplier();

            //(Supplier)((ViewResult)result).Model;
            Assert.AreEqual(y.SupplierName, "Tipperary Water");
        }
 public void Notify(Contract contract, string pdfFilePath, MailTypeMessage typeMessage)
 {
     detail           = contract.Details[0];
     this.pdfFilePath = pdfFilePath;
     this.typeMessage = typeMessage;
     GenerateBody();
     SendAnEmail();
 }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            ContractDetail contractDetail = await db.ContractDetail.FindAsync(id);

            db.ContractDetail.Remove(contractDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public bool Update(ContractDetail obj)
        {
            var user = GetByTwoId(obj.ContractID, obj.ProductID);

            user.Quantity = obj.Quantity;
            user.Notes    = obj.Notes;
            return(db.SaveChanges() > 0);
        }
        public void ImportContractDetail(Stream stream, string sheetName)
        {
            NPOIHelper <string> nopi = new NPOIHelper <string>();
            List <object>       list = new List <object>();

            list = nopi.GetExcel(stream, sheetName);
            foreach (var obj in list)
            {
                Dictionary <string, string> dic = obj as Dictionary <string, string>;
                var contractDetail = new ContractDetail();
                contractDetail.Contract = db.Contracts.Find(int.Parse(Request.Params["ContractId"]));
                if (dic.ContainsKey("设备材料名称") && !string.IsNullOrEmpty(dic["设备材料名称"]))
                {
                    contractDetail.EquipmentMaterialName = dic["设备材料名称"];
                }
                if (dic.ContainsKey("品牌") && !string.IsNullOrEmpty(dic["品牌"]))
                {
                    contractDetail.Brand = dic["品牌"];
                }

                if (dic.ContainsKey("规格") && !string.IsNullOrEmpty(dic["规格"]))
                {
                    contractDetail.Specifications = dic["规格"];
                }

                if (dic.ContainsKey("单位") && !string.IsNullOrEmpty(dic["单位"]))
                {
                    contractDetail.Unit = dic["单位"];
                }
                if (dic.ContainsKey("数量") && !string.IsNullOrEmpty(dic["数量"]))
                {
                    contractDetail.Count = int.Parse(dic["数量"]);
                }

                if (dic.ContainsKey("单价") && !string.IsNullOrEmpty(dic["单价"]))
                {
                    decimal unit = 0;

                    if (decimal.TryParse(dic["单价"], out unit))
                    {
                        contractDetail.UnitPrice = unit;
                    }
                    else
                    {
                        contractDetail.UnitPrice = 0;
                    }
                }
                contractDetail.PriceSum = contractDetail.UnitPrice * contractDetail.Count;

                if (dic.ContainsKey("备注") && !string.IsNullOrEmpty(dic["备注"]))
                {
                    contractDetail.Memo = dic["备注"];
                }
                db.ContractDetails.Add(contractDetail);
            }
            db.SaveChanges();
        }
        public static bool ValidItemForOnDemand(PXGraph graph, ContractDetail detail, out string itemCD)
        {
            ContractItem item = PXSelect <ContractItem, Where <ContractItem.contractItemID, Equal <Required <ContractDetail.contractItemID> > > > .Select(graph, detail.ContractItemID);

            bool isInvalid = item?.RecurringItemID != null && item.DepositItemID == null && detail.Qty > 0m;

            itemCD = isInvalid ? item.ContractItemCD : null;
            return(!isInvalid);
        }
        //
        // GET: /Site/Edit/5

        public ActionResult Edit(int id)
        {
            SiteMonitoring           e      = repo.Get(id);
            ContractDetailRepository cdrepo = new ContractDetailRepository();
            ContractDetail           cd     = cdrepo.Get(e.ContractDetailID.ToInt());

            e.Site = cd.Site;
            return(View(e));
        }
Beispiel #17
0
        protected virtual void ContractDetail_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ContractDetail row = e.Row as ContractDetail;

            if (row != null && Task.Current != null)
            {
                PXUIFieldAttribute.SetEnabled <ContractDetail.included>(sender, row, Task.Current.IsActive != true);
            }
        }
        protected virtual void ContractDetail_RowUpdating(PXCache sender, PXRowUpdatingEventArgs e)
        {
            ContractDetail row = e.NewRow as ContractDetail;

            if (row != null)
            {
                ValidateUniqueness(sender, row, e);
            }
        }
        public ActionResult Create(int?contractDetailID, IEnumerable <HttpPostedFileBase> files, string[] noteList)
        {
            repo.Create(UpdateModel, files, contractDetailID, noteList);

            ContractDetailRepository contractDetailRepository = new ContractDetailRepository();

            ContractDetail e = contractDetailRepository.Get(contractDetailID.Value);

            return(RedirectToAction("Edit", "Contract", new { id = e.ContractID }));
        }
        protected virtual void ContractDetail_Qty_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            ContractDetail row  = (ContractDetail)e.Row;
            ContractItem   item = PXSelect <ContractItem, Where <ContractItem.contractItemID, Equal <Required <ContractDetail.contractItemID> > > > .Select(this, row.ContractItemID);

            if (item != null && (item.MaxQty < (decimal?)e.NewValue || item.MinQty > (decimal?)e.NewValue))
            {
                throw new PXSetPropertyException(Messages.QtyErrorWithParameters, PXDBQuantityAttribute.Round(item.MinQty ?? 0m), PXDBQuantityAttribute.Round(item.MaxQty ?? 0m));
            }
        }
Beispiel #21
0
        public virtual void contractDetails(int reqId, ContractDetails contractDetails)
        {
            Console.WriteLine("ContractDetails begin. ReqId: " + reqId);
            printContractMsg(contractDetails.Summary);
            printContractDetailsMsg(contractDetails);
            Console.WriteLine("ContractDetails end. ReqId: " + reqId);

            ContractDetail contractDetail = new ContractDetail(reqId, contractDetails);

            RaiseContractDetailsUpdatedEvent(new ContractDetailArgs(contractDetail));
        }
        public ContractDetail GetContractById(int id)
        {
            ContractDetail q = new ContractDetail();

            using (var myContext = new customerDbEntities())
            {
                q = myContext.ContractDetails.Where(w => w.id == id).FirstOrDefault();
            }

            return(q);
        }
Beispiel #23
0
        protected static void UpdatePrices(ContractMaint graph, ContractDetail item)
        {
            Contract contract = PXSelect <Contract, Where <Contract.contractID, Equal <Required <Contract.contractID> > > > .Select(graph, item.ContractID);

            using (PXTransactionScope ts = new PXTransactionScope())
            {
                if (CTPRType.IsTemplate(contract.BaseType) != true)
                {
                    ContractMaintExt contractMaintExt = CreateInstance <ContractMaintExt>();
                    contractMaintExt.Contracts.Current = contract;
                    if (contract.IsActive == true &&
                        contract.IsPendingUpdate != true &&
                        contract.Status != Contract.status.PendingActivation)
                    {
                        CTBillEngine engine = CreateInstance <CTBillEngine>();
                        engine.Upgrade(contract.ContractID);
                        engine.Clear();
                        contractMaintExt.Contracts.Current = PXSelect <Contract, Where <Contract.contractID, Equal <Required <Contract.contractID> > > > .Select(engine, item.ContractID);

                        item = PXSelect <ContractDetail,
                                         Where <ContractDetail.contractID, Equal <Required <ContractDetail.contractID> >,
                                                And <ContractDetail.lineNbr, Equal <Required <ContractDetail.lineNbr> > > > > .Select(engine, item.ContractID, item.LineNbr);
                    }
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.basePriceOption>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.basePrice>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.renewalPriceOption>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.renewalPrice>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.fixedRecurringPriceOption>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.fixedRecurringPrice>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.usagePriceOption>(item);
                    contractMaintExt.ContractDetails.Cache.SetDefaultExt <ContractDetail.usagePrice>(item);
                    contractMaintExt.ContractDetails.Update(item);

                    contractMaintExt.Actions.PressSave();
                }
                else
                {
                    TemplateMaint templateMaint = CreateInstance <TemplateMaint>();
                    templateMaint.Templates.Current = PXSelect <ContractTemplate, Where <ContractTemplate.contractID, Equal <Required <ContractTemplate.contractID> > > > .Select(graph, item.ContractID);

                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.basePriceOption>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.basePrice>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.renewalPriceOption>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.renewalPrice>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.fixedRecurringPriceOption>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.fixedRecurringPrice>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.usagePriceOption>(item);
                    templateMaint.ContractDetails.Cache.SetDefaultExt <ContractDetail.usagePrice>(item);
                    templateMaint.ContractDetails.Update(item);
                    templateMaint.Actions.PressSave();
                }
                ts.Complete();
            }
        }
 public ActionResult Edit(ContractDetail model, int ContractId)
 {
     try {
         model.Contract        = db.Contracts.Find(ContractId);
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
     } catch (Exception ex) {
         return(Json(new { IsSuccess = false, Message = ex.Message }, "text/html", JsonRequestBehavior.AllowGet));
     }
     return(Json(new { IsSuccess = true, Message = "保存成功" }, "text/html", JsonRequestBehavior.AllowGet));
 }
 private void FileOperations(ContractDetail detail)
 {
     filePath     = BasePath + @"\contratos";
     templatePath = BasePath + @"\\templates";
     VerifiPath();
     fileName =
         $@"{filePath}\contrato_{singleProfileName}_{detail.Customer}_{detail.DateAcepted.Year}-{detail.DateAcepted.Month}-{detail.DateAcepted.Day}.docx";
     VerifyFile();
     VerifyPdfFile();
     CopyTemplate();
 }
 public ActionResult Create(ContractDetail model, int ContractId)
 {
     try {
         // TODO: Add insert logic here
         model.Contract = db.Contracts.Find(ContractId);
         db.ContractDetails.Add(model);
         db.SaveChanges();
     } catch (Exception ex) {
         return(Json(new { IsSuccess = false, Message = ex.Message }, "text/html", JsonRequestBehavior.AllowGet));
     }
     return(Json(new { IsSuccess = true, Message = "保存成功" }, "text/html", JsonRequestBehavior.AllowGet));
 }
Beispiel #27
0
        protected virtual void ContractDetail_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ContractDetail row = e.Row as ContractDetail;

            if (row != null && Task.Current != null)
            {
                PXUIFieldAttribute.SetEnabled <ContractDetail.included>(sender, row, Task.Current.IsActive != true);
                PXUIFieldAttribute.SetEnabled <ContractDetail.accountID>(sender, e.Row, row.AccountSource != PMAccountSource.None);
                PXUIFieldAttribute.SetEnabled <ContractDetail.subID>(sender, e.Row, row.AccountSource != PMAccountSource.None);
                PXUIFieldAttribute.SetEnabled <ContractDetail.subMask>(sender, e.Row, row.AccountSource != PMAccountSource.None);
            }
        }
Beispiel #28
0
        public async Task <ActionResult> Edit([Bind(Include = "Contract_ID,ContractStartDate,ContractFinishDate,ContractExtensionsAvailable,DurationContactExtension,Servicetype,PriceDescription,Price,VatRate,PriceUpdatedate,Supplier_ID")] ContractDetail contractDetails)
        {
            if (ModelState.IsValid)
            {
                db.Entry(contractDetails).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.Supplier_ID = new SelectList(db.Supplier, "Supplier_ID", "SupplierNumber", contractDetails.Supplier_ID);
            return(View(contractDetails));
        }
        public ActionResult Create([Bind(Include = "Contract_ID,ContractStartDate,ContractFinishDate,ContractExtensionsAvailable,DurationContactExtension,Servicetype,PriceDescription,Price,VatRate,PriceUpdatedate,Supplier_ID")] ContractDetail contractDetail)
        {
            if (ModelState.IsValid)
            {
                db.ContractDetail.Add(contractDetail);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.Supplier_ID = new SelectList(db.Supplier, "Supplier_ID", "SupplierNumber", contractDetail.Supplier_ID);
            return(View(contractDetail));
        }
        protected virtual void ContractDetail_ContractItemID_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            ContractDetail detail = (ContractDetail)e.Row;
            ContractItem   item   = PXSelect <ContractItem, Where <ContractItem.contractItemID, Equal <Required <ContractDetail.contractItemID> > > > .Select(this, e.NewValue);

            ContractTemplate template = PXSelect <ContractTemplate, Where <ContractTemplate.contractID, Equal <Required <ContractDetail.contractID> > > > .Select(this, detail.ContractID);

            if (item != null && template != null && item.CuryID != template.CuryID)
            {
                e.NewValue = item.ContractItemCD;
                throw new PXSetPropertyException(Messages.ItemHasAnotherCuryID, item.ContractItemCD, item.CuryID, template.CuryID, PXUIFieldAttribute.GetItemName(CurrentTemplate.Cache));
            }
        }
        /// <summary>
        /// add the 
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool AddCustomer(OrderDetails model)
        {
            try
            {
                var objCustomerDetails = new ClientDetail();

                objCustomerDetails.Name = model.CustomerName;
                objCustomerDetails.Email = model.Email;
                objCustomerDetails.BillingAddress = model.BillingAddress;
                objCustomerDetails.ShippingAddress = model.ShippingAddress;
                objCustomerDetails.Number = model.Number;
                ObjEntity.ClientDetails.Add(objCustomerDetails);
                ObjEntity.SaveChanges();

                var objContractDetail = new ContractDetail();
                objContractDetail.NetAmount = model.NetAmount;
                objContractDetail.Quantity = model.Quantity;
                objContractDetail.OrderAmount = model.OrderAmount;
                objContractDetail.Tax = model.Tax;
                objContractDetail.Discount = model.Discount;
                objContractDetail.IsActive = true;
                objContractDetail.TransactionDate = DateTime.Now;
                objContractDetail.Customer_ID = objCustomerDetails.ID; ;
                ObjEntity.ContractDetails.Add(objContractDetail);
               int OrderNo= ObjEntity.SaveChanges();
                var OrderItemDetails = new OrderItemDetail();
                OrderItemDetails.Rate = model.Rate;
                OrderItemDetails.Order_ID = objContractDetail.ID;
                OrderItemDetails.Product_ID = 4;
                OrderItemDetails.Quantity = model.Quantity.Value;

                OrderItemDetails.Amount = model.Amount;
                ObjEntity.OrderItemDetails.Add(OrderItemDetails);
                ObjEntity.SaveChanges();
                return true;
            }
            catch (Exception ex)
            {
                ExceptionHandling.SaveException(ex);
                return false;
            }
        }
			public Contract()
			{
				ContractDetail = new ContractDetail();
				CurrencyContract = new CurrencyContract();
				Calculator = new Calculator(this);
			}
Beispiel #33
0
 // 增加明细
 private void tsbNew_Click(object sender, EventArgs e)
 {
     ContractDetail cd = new ContractDetail() { PayDate = DateTime.Now };
     m_contract.DetailList.Add(cd);
     gridControl1.DataSource = null;
     gridControl1.DataSource = m_contract.DetailList;
 }
 public ContractDetail GetContractData(int contractNumber, int companyId)
 {
     try
     {
         DataSet contractData;
         using (IO io = new IO(WebCommon.ConnectionString))
         {
             contractData = io.ExecuteDataSetQuery(IO.CreateCommandFromStoredProc("DIGITALLIBRARY_GETCONTRACTDETAIL",
                 Param.CreateParam("CONTRACTNUMBER", SqlDbType.Int, contractNumber),
                 Param.CreateParam("COMPANYID", SqlDbType.Int, companyId)));
         }
         if (contractData == null || contractData.Tables[0].Rows.Count <= 0)
         {
             return new ContractDetail();
         }
         ContractDetail contractDetail = new ContractDetail();
         contractDetail.ContractNumber = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "CONTRACT_NUMBER", ""));
         contractDetail.Agency = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "AGENCY", ""));
         contractDetail.Advertiser = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "ADVERTISER", ""));
         contractDetail.AE1 = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "AE_1_NAME", ""));
         contractDetail.AE2 = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "AE_2_NAME", ""));
         contractDetail.AE3 = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "AE_3_NAME", ""));
         contractDetail.Program = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "PROGRAM", ""));
         contractDetail.Company = Convert.ToString(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "COMPANY", ""));
         contractDetail.CompanyId = Convert.ToInt32(IO.GetDataRowValue(contractData.Tables[0].Rows[0], "COMPANY_ID", 1));
         contractDetail.ContractDetailLines = new List<ContractDetailLine>();
         foreach (DataRow row in contractData.Tables[0].Rows)
         {
             contractDetail.ContractDetailLines.Add(new ContractDetailLine
             {
                 Market = Convert.ToString(IO.GetDataRowValue(row, "MARKET", "")),
                 SalesMarket = Convert.ToString(IO.GetDataRowValue(row, "SALES_MARKET", "")),
                 LineMessage = Convert.ToString(IO.GetDataRowValue(row, "LINE_MESSAGE", "")),
                 ProfitCenter = Convert.ToString(IO.GetDataRowValue(row, "PROFIT_CENTER", "")),
                 MediaType = Convert.ToString(IO.GetDataRowValue(row, "MEDIA_TYPE", "")),
                 MediaForm = Convert.ToString(IO.GetDataRowValue(row, "MEDIA_FORM", "")),
                 StartDateDisplay = Convert.ToString(IO.GetDataRowValue(row, "START_DATE", "")),
                 EndDateDisplay = Convert.ToString(IO.GetDataRowValue(row, "END_DATE", "")),
                 Quantity = Convert.ToInt32(IO.GetDataRowValue(row, "QUANTITY", 0)),
                 Reason = (Convert.ToString(IO.GetDataRowValue(row, "REASON", "")) == "B" ? "Bonus" : (Convert.ToString(IO.GetDataRowValue(row, "REASON", "")) == "A" ? "Added" : Convert.ToString(IO.GetDataRowValue(row, "REASON", "")))),
                 LineItemNumber = Convert.ToInt32(IO.GetDataRowValue(row, "LINE_ITEM_NUMBER", 0))
             });
         }
         return contractDetail;
     }
     catch (Exception ex)
     {
         WebCommon.LogExceptionInfo(ex);
         return new ContractDetail();
     }
 }
        /// <summary>
        /// This method first connects to the Organization service. Afterwards,
        /// a Contract Template and several Contracts are created, demonstrating how to
        /// create and work with the Contract entity.
        /// </summary>
        /// <param name="serverConfig">Contains server connection information.</param>
        /// <param name="promptforDelete">When True, the user will be prompted to delete all
        /// created entities.</param>
        public void Run(ServerConnection.Configuration serverConfig, bool promptforDelete)
        {
            try
            {
                //<snippetWorkingWithContracts1>
                // Connect to the Organization service. 
                // The using statement assures that the service proxy will be properly disposed.
                using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials))
                {
                    // This statement is required to enable early-bound type support.
                    _serviceProxy.EnableProxyTypes();

                    CreateRequiredRecords();

                    #region Create Contract Template

                    // First, attempt to retrieve the Contract Template. Otherwise, 
                    // create the template.
                    QueryExpression templateQuery = new QueryExpression()
                    {
                        EntityName = ContractTemplate.EntityLogicalName,
                        ColumnSet = new ColumnSet("contracttemplateid"),
                        Criteria =
                        {
                            Conditions =
                            {
                                new ConditionExpression("abbreviation", ConditionOperator.Equal, "SCT")
                            }
                        }
                    };
                    EntityCollection ec = _serviceProxy.RetrieveMultiple(templateQuery);

                    if (ec.Entities.Count > 0)
                    {
                        _contractTemplateId = ec.Entities[0].Id;
                        Console.Write("Template retrieved, ");
                    }
                    else
                    {
                        ContractTemplate contractTemplate = new ContractTemplate()
                        {
                            Name = "Sample Contract Template",
                            BillingFrequencyCode = new OptionSetValue((int)ContractTemplateBillingFrequencyCode.Monthly),
                            Abbreviation = "SCT",
                            AllotmentTypeCode = new OptionSetValue((int)ContractTemplateAllotmentTypeCode.NumberofCases),
                            EffectivityCalendar =
                                "--------+++++++++---------------+++++++++---------------+++++++++---------------+++++++++---------------+++++++++-------------------------------------------------------"
                        };
                        _contractTemplateId = _serviceProxy.Create(contractTemplate);
                        Console.Write("Template created, ");
                    }

                    #endregion

                    #region Create Contract

                    // Create a Contract from the Contract Template.
                    Contract contract = new Contract()
                    {
                        Title = "Sample Contract",
                        ContractTemplateId = new EntityReference
                        {
                            Id = _contractTemplateId,
                            LogicalName = ContractTemplate.EntityLogicalName
                        },
                        CustomerId = new EntityReference
                        {
                            Id = _accountId,
                            LogicalName = Account.EntityLogicalName
                        },
                        BillingCustomerId = new EntityReference
                        {
                            Id = _accountId,
                            LogicalName = Account.EntityLogicalName
                        },
                        ActiveOn = new DateTime(2015, 1, 1),
                        ExpiresOn = new DateTime(2020, 1, 1),
                        BillingStartOn = new DateTime(2015, 1, 1),
                        BillingEndOn = new DateTime(2020, 1, 1)
                    };
                    _contractId = _serviceProxy.Create(contract);

                    Console.Write("parent contract created, ");

                    // Create a contract line item.
                    ContractDetail contractLineItem = new ContractDetail()
                    {
                        Title = "Sample Contract Line Item",
                        ContractId = new EntityReference
                        {
                            Id = _contractId,
                            LogicalName = Contract.EntityLogicalName
                        },
                        CustomerId = new EntityReference
                        {
                            Id = _accountId,
                            LogicalName = Account.EntityLogicalName
                        },
                        ActiveOn = new DateTime(2015, 1, 1),
                        ExpiresOn = new DateTime(2020, 1, 1),
                        Price = new Money(20.0M),
                        TotalAllotments = 20
                    };
                    _serviceProxy.Create(contractLineItem);

                    Console.Write("contract line attached, ");

                    #endregion

                    #region Clone contract twice

                    //<snippetCloneContract>
                    // Create the first clone of the contract.
                    CloneContractRequest cloneRequest = new CloneContractRequest()
                    {
                        ContractId = _contractId,
                        IncludeCanceledLines = false
                    };
                    CloneContractResponse cloneResponse =
                        (CloneContractResponse)_serviceProxy.Execute(cloneRequest);
                    _firstCloneId = ((Contract)cloneResponse.Entity).ContractId.Value;

                    //</snippetCloneContract>
                    Console.Write("first clone created, ");

                    // Create the second clone of the contract.
                    cloneRequest = new CloneContractRequest()
                    {
                        ContractId = _contractId,
                        IncludeCanceledLines = true
                    };
                    cloneResponse =
                        (CloneContractResponse)_serviceProxy.Execute(cloneRequest);
                    _secondCloneId = ((Contract)cloneResponse.Entity).ContractId.Value;

                    Console.Write("second clone created. \n");

                    // Retrieve all Contracts.
                    QueryExpression contractQuery = new QueryExpression()
                    {
                        EntityName = Contract.EntityLogicalName,
                        ColumnSet = new ColumnSet("contractid"),
                        Criteria =
                        {
                            Conditions = 
                            {
                                new ConditionExpression("customerid", ConditionOperator.Equal, _accountId)
                            }
                        }
                    };
                    EntityCollection contracts = _serviceProxy.RetrieveMultiple(contractQuery);

                    // Display the retrieved Contract Ids.
                    for (int i = 0; i < contracts.Entities.Count; i++)
                    {
                        Console.WriteLine("Retrieved contract with Id: {0}",
                            ((Contract)contracts.Entities[i]).ContractId);
                    }

                    #endregion

                    #region Deactivate a cloned contract

                    // In order to deactivate a contract (put it on hold), it is first
                    // necessary to invoice the contract.
                    SetStateRequest setStateRequest = new SetStateRequest()
                    {
                        EntityMoniker = new EntityReference
                        {
                            Id = _firstCloneId,
                            LogicalName = Contract.EntityLogicalName
                        },
                        State = new OptionSetValue((int)ContractState.Invoiced),
                        Status = new OptionSetValue(2)
                    };
                    _serviceProxy.Execute(setStateRequest);

                    Console.Write("Contract invoiced, ");

                    // Now that the contract has been invoiced, it is possible to put
                    // the contract on hold.
                    setStateRequest = new SetStateRequest()
                    {
                        EntityMoniker = new EntityReference
                        {
                            Id = _firstCloneId,
                            LogicalName = Contract.EntityLogicalName
                        },
                        State = new OptionSetValue((int)ContractState.OnHold),
                        Status = new OptionSetValue(4)
                    };
                    _serviceProxy.Execute(setStateRequest);

                    Console.Write("and put on hold.\n");

                    #endregion

                    #region Renew an invoiced contract

                    // In order to renew a contract, it must be invoiced first, and
                    // then canceled.

                    //<snippetSetStateForContract>
                    // Invoice the contract.
                    setStateRequest = new SetStateRequest()
                    {
                        EntityMoniker = new EntityReference
                        {
                            Id = _contractId,
                            LogicalName = Contract.EntityLogicalName
                        },
                        State = new OptionSetValue((int)ContractState.Invoiced),
                        Status = new OptionSetValue(3)
                    };
                    _serviceProxy.Execute(setStateRequest);
                    //</snippetSetStateForContract>

                    Console.Write("Contract invoiced, ");

                    //<snippetCancelContract>
                    // Cancel the contract.
                    setStateRequest = new SetStateRequest()
                    {
                        EntityMoniker = new EntityReference
                        {
                            Id = _contractId,
                            LogicalName = Contract.EntityLogicalName
                        },
                        State = new OptionSetValue((int)ContractState.Canceled),
                        Status = new OptionSetValue(5)
                    };
                    _serviceProxy.Execute(setStateRequest);

                    //</snippetCancelContract>
                    Console.Write("canceled, ");

                    //<snippetRenewContract>
                    // Renew the canceled contract.
                    RenewContractRequest renewRequest = new RenewContractRequest()
                    {
                        ContractId = _contractId,
                        IncludeCanceledLines = true,
                        Status = 1
                    };
                    RenewContractResponse renewResponse =
                        (RenewContractResponse)_serviceProxy.Execute(renewRequest);

                    // Retrieve Id of renewed contract.
                    _renewedId = ((Contract)renewResponse.Entity).ContractId.Value;

                    //</snippetRenewContract>
                    // Display the Id of the renewed contract.
                    Console.WriteLine("and renewed.");

                    #endregion

                    DeleteRequiredRecords(promptforDelete);
                }
                //</snippetWorkingWithContracts1>
            }

            // Catch any service fault exceptions that Microsoft Dynamics CRM throws.
            catch (FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>)
            {
                // You can handle an exception here or pass it back to the calling method.
                throw;
            }
        }