public ContractPaymentModel preparePaymentbyContractAcceptance(ContractAcceptance Accep)
        {
            var model = new ContractPaymentModel();

            model.Amount = (Accep.TotalAmount.GetValueOrDefault(0) * Accep.Ratio.GetValueOrDefault(0)).ToVNStringNumber();
            var map = _contractService.GetAllContractAcceptanceTaskMapping(AcepptanceId: Accep.Id).FirstOrDefault();

            model.TaskId       = map.task.Id;
            model.TaskName     = map.task.Name;
            model.ContractName = map.task.contract.Name;
            return(model);
        }
예제 #2
0
        public virtual IActionResult Create(ContractPaymentAdvanceModel model)
        {
            var noti = "admin.common.Added";
            var item = new ContractPaymentAdvance();

            //var ListAcceptance = model.ListContractAcceptance.Where(c => c.TotalAmount.ToNumber() > 0).ToList();

            if (ModelState.IsValid && model.ListContractAcceptance.Count > 0)
            {
                if (model.Id > 0)
                {
                    var acceptances = _contractService.getAllContractAcceptanceByAdvanceId(model.Id);
                    foreach (ContractAcceptance acceptance in acceptances)
                    {
                        _contractService.DeleteContractAcceptance(acceptance);
                        _contractService.DeleteContractAcceptanceTaskMappingbyAcceptanceId(acceptance.Id);
                    }
                    item = _paymentAdvanceService.GetPaymentAdvanceById(model.Id);
                    _paymentAdvanceFactory.PrepareContractPaymentAdvance(model, item);
                    _paymentAdvanceService.UpdatePaymentAdvance(item);
                    noti = "admin.common.Updated";
                }
                else
                {
                    _paymentAdvanceFactory.PrepareContractPaymentAdvance(model, item);
                    _paymentAdvanceService.InsertPaymentAdvance(item);
                }
                foreach (ContractAcceptanceModel accep in model.ListContractAcceptance)
                {
                    //add contractAcceptance
                    var accepitem = new ContractAcceptance();
                    accep.ApprovalDate     = model.PayDate;
                    accep.PaymentAdvanceId = item.Id;
                    accep.TypeId           = (int)ContractAcceptancesType.TamUng;
                    _contractModelFactory.PrepareContractAcceptance(accep, accepitem);
                    _contractService.InsertContractAcceptance(accepitem);
                    //add ContractAcceptamce_Task_Mapping
                    var AcceptanceTask = new ContractAcceptanceTaskMapping
                    {
                        TaskId = (int)accep.TaskId,
                        ContractAcceptanceId = accepitem.Id
                    };

                    _contractService.InsertContractAcceptanceTaskMapping(AcceptanceTask);
                }
                return(JsonSuccessMessage(_localizationService.GetResource(noti)));
            }
            var list = ModelState.Values.Where(c => c.Errors.Count > 0).ToList();

            return(JsonErrorMessage("Error", list));
        }
예제 #3
0
        public ContractAcceptanceModel PrepareContractAcceptance(ContractAcceptance item)
        {
            var mapping = _contractService.GetAllContractAcceptanceTaskMapping(AcepptanceId: item.Id).FirstOrDefault();
            var task    = _workTaskService.GetTaskById(mapping.TaskId);
            var model   = new ContractAcceptanceModel
            {
                TaskName = task.Name
            };

            model.TaskId             = task.Id;
            model.ContractId         = task.ContractId;
            model.TaskTotalMoneyText = _priceFormatter.FormatPrice(task.TotalMoney.GetValueOrDefault(0), true, task.currency);
            //so da tam ung
            var acceps = _contractService.getAllContractAcceptance(ContractId: task.ContractId, TaskId: task.Id, TypeId: (int)ContractAcceptancesType.TamUng).Where(c => c.Id != item.Id).ToList();

            model.ToltalAmountAdvanced = acceps.Sum(c => (Int64)c.TotalAmount);
            model.SumToltalAmount      = (Int64)task.TotalMoney;
            model.TotalAmount          = item.TotalAmount.ToVNStringNumber();
            model.Ratio = item.Ratio * 100;
            model.ToltalAmountAdvancedText = _priceFormatter.FormatPrice(model.ToltalAmountAdvanced, true, task.currency);
            return(model);
        }
        public virtual IActionResult Create(ContractAcceptanceModel model)
        {
            var noti = "admin.common.Added";
            var item = new ContractAcceptance();

            if (ModelState.IsValid && model.listAcceptanceSub.Count > 0)
            {
                if (model.Id > 0)
                {
                    item = _contractService.getContractAcceptancebyId(model.Id);
                    _contractModelFactory.PrepareContractAcceptanceNoiboForUnit(model, item);
                    //remove listAcceptanceSub cu
                    _contractService.DeleteContractAcceptanceSubByAcceptanceId(AccepId: model.Id, TypeId: (int)ContractAcceptancesType.NoiBo);
                }
                // add ContractAcceptanceNoibo
                _contractModelFactory.PrepareContractAcceptanceNoiboForUnit(model, item);
                if (model.Id > 0)
                {
                    _contractService.UpdateContractAcceptance(item);
                    // Insert ContractLog
                    var contractLog = new ContractLog()
                    {
                        ContractId   = item.Id,
                        CreatedDate  = DateTime.Now,
                        CreatorId    = _workContext.CurrentCustomer.Id,
                        ContractData = item.ToModel <ContractAcceptanceModel>().toStringJson()
                    };
                    _contractLogService.InsertContractLog(contractLog, "Sửa nghiệm thu nội bộ: " + item.Name);
                    noti = "admin.common.updated";
                }
                else
                {
                    _contractService.InsertContractAcceptance(item);
                    // Insert ContractLog
                    var contractLog = new ContractLog()
                    {
                        ContractId   = item.Id,
                        CreatedDate  = DateTime.Now,
                        CreatorId    = _workContext.CurrentCustomer.Id,
                        ContractData = item.ToModel <ContractAcceptanceModel>().toStringJson()
                    };
                    _contractLogService.InsertContractLog(contractLog, "Thêm mới nghiệm thu nội bộ: " + item.Name);
                }
                //var _cas = new ContractAcceptanceSub();
                foreach (ContractAcceptanceSubModel _casModel in model.listAcceptanceSub)
                {
                    _casModel.Description = item.Name;
                    var _cas = _contractModelFactory.PrepareContractAcceptanceSubByTask(_casModel, null);
                    _cas.AcceptanceId = item.Id;
                    _contractService.InsertContractAcceptionSub(_cas);
                    if (model.SelectedListFileId.Count > 0)
                    {
                        foreach (int FileId in model.SelectedListFileId)
                        {
                            var contractFile = new ContractFile
                            {
                                ContractId = _cas.ContractId,
                                FileId     = FileId,
                                TypeId     = (int)ContractFileType.AcceptanceNoiBo,
                                EntityId   = item.Id.ToString(),
                            };
                            _contractService.InsertContractFile(contractFile);
                        }
                    }
                }
                return(JsonSuccessMessage(_localizationService.GetResource(noti)));
            }
            else
            {
                var list = ModelState.Values.Where(c => c.Errors.Count > 0).ToList();
                return(JsonErrorMessage("Error", list));
            }
        }