public decimal?GetTotalEarnMoneyByTransactionId(int id) { Transaction ts = _transactionRepository.GetSingleByID(id); Model.Models.Service s = _serviceRepository.GetSingleByID(ts.ServiceId); float? vat = s.VAT; decimal?earnTotal = 0; var listTransactionDetail = _transactionDetailRepository.GetMulti(x => x.TransactionId == id).ToList(); foreach (var item in listTransactionDetail) { decimal?percent = _propertyServiceRepository.GetSingleByID(item.PropertyServiceId).Percent; if (vat > 0 && vat != null) { earnTotal = earnTotal + percent * item.Money / Convert.ToDecimal(vat); } else { earnTotal = earnTotal + percent * item.Money; } } int?quantity = _transactionRepository.GetSingleByID(id).Quantity; return(earnTotal); }
public void Update(Model.Models.Service service) { _serviceRepository.Update(service); }
public async Task <HttpResponseMessage> RP1(HttpRequestMessage request, string fromDate, string toDate, int districtId, int functionId, int poId, string userSelected, int serviceId) { //check role bool isAdmin = false; bool isManager = false; isAdmin = _userService.CheckRole(User.Identity.Name, "Administrator"); isManager = _userService.CheckRole(User.Identity.Name, "Manager"); bool isSupport = _userService.CheckRole(User.Identity.Name, "Support"); #region Config Export file string fileName = string.Concat("Money_" + DateTime.Now.ToString("yyyyMMddhhmmsss") + ".xlsx"); var folderReport = ConfigHelper.GetByKey("ReportFolder"); string filePath = HttpContext.Current.Server.MapPath(folderReport); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string fullPath = Path.Combine(filePath, fileName); #endregion Config Export file ReportTemplate vm = new ReportTemplate(); //IEnumerable<RP1Advance> rp1Advance; try { #region customFill Test District district = new District(); PO po = new PO(); ApplicationUser user = new ApplicationUser(); Model.Models.Service sv = new Model.Models.Service(); // current user string currentUser = User.Identity.Name; // Thời gian để xuất dữ liệu DateTime fd; DateTime td; try { fd = DateTime.ParseExact(fromDate, "MM/dd/yyyy", CultureInfo.InvariantCulture); vm.FromDate = fd; td = DateTime.ParseExact(toDate, "MM/dd/yyyy", CultureInfo.InvariantCulture); vm.ToDate = td; } catch (Exception) { throw; } vm.CreatedBy = currentUser; //check param đầu vào #region data input if (districtId != 0) { district = _districtService.GetById(districtId); vm.District = district.Name; } if (poId != 0) { po = _poService.GetByID(poId); vm.Unit = po.Name; } if (!string.IsNullOrEmpty(userSelected)) { user = _userService.getByUserId(userSelected); vm.user = user.FullName; } if (serviceId != 0) { sv = _serviceService.GetById(serviceId); vm.Service = sv.Name; } #endregion data input switch (functionId) { #region case 1 Bảng kê thu tiền tại bưu cục - tổng hợp case 1: vm.FunctionName = "Bảng kê thu tiền tại bưu cục - tổng hợp"; // BCCP var query = _statisticService.Export_By_Service_Group_And_Time_District_Po_BCCP(fromDate, toDate, districtId, poId, currentUser, userSelected); var c = query.Count(); var responseBCCP = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP>, IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM> >(query); foreach (var item in responseBCCP) { item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } var responseBCCP1 = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM>, IEnumerable <Export_Template_VM> >(responseBCCP); //TCBC var query2 = _statisticService.Get_General_TCBC(fromDate, toDate, districtId, poId, currentUser, userSelected); var c2 = query2.Count(); var responseTCBC = Mapper.Map <IEnumerable <Get_General_TCBC>, IEnumerable <Get_General_TCBC_VM> >(query2); foreach (var item in responseTCBC) { item.Tax = item.Sales - item.Sales / (decimal)item.VAT; } var responseTCBC1 = Mapper.Map <IEnumerable <Get_General_TCBC_VM>, IEnumerable <Export_Template_TCBC> >(responseTCBC); //PPTT var query3 = _statisticService.Export_By_Service_Group_And_Time_District_Po_PPTT(fromDate, toDate, districtId, poId, currentUser, userSelected); var responsePPTT = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP>, IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM> >(query3); foreach (var item in responsePPTT) { item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } var responsePPTT1 = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM>, IEnumerable <Export_Template_VM> >(responsePPTT); await ReportHelper.Export_By_Service_Group_And_Time(responseBCCP1.ToList(), responsePPTT1.ToList(), responseTCBC1.ToList(), fullPath, vm); break; #endregion case 1 Bảng kê thu tiền tại bưu cục - tổng hợp #region case 2 Bảng kê thu tiền tại bưu cục - chi tiết case 2: vm.FunctionName = "Bảng kê thu tiền tại bưu cục - chi tiết"; // check if basic user //if (!isAdmin && !isManager && !isSupport) //{ // break; //} #region BCCP var q1 = _trasactionService.GetByCondition_BCCP(fd, td, districtId, poId, currentUser); var c4 = q1.Count(); var BCCP = Mapper.Map <IEnumerable <Transaction>, IEnumerable <TransactionViewModel> >(q1); #region foreach foreach (var item in BCCP) { item.VAT = _serviceService.GetById(item.ServiceId).VAT; item.Quantity = Convert.ToInt32(_transactionDetailService.GetAllByCondition("Sản lượng", item.ID).Money); item.ServiceName = _serviceService.GetById(item.ServiceId).Name; if (!item.IsCash) { item.TotalDebt = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalCash = 0; } else { item.TotalCash = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalDebt = 0; } item.EarnMoney = _transactionDetailService.GetTotalEarnMoneyByTransactionId(item.ID); item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } #endregion var resBCCP = Mapper.Map <IEnumerable <TransactionViewModel>, IEnumerable <Export_Template_VM> >(BCCP); foreach (var item in resBCCP) { var stt = item.STT; var name = item.ServiceName; var qty = item.Quantity; var cash = item.TotalCash; var debt = item.TotalDebt; var m1 = item.TotalMoneyBeforeVat; var vat = item.TotalVat; var e = item.EarnMoney; } #endregion #region TCBC var q2 = _trasactionService.GetByCondition_TCBC(fd, td, districtId, poId, currentUser); var c5 = q2.Count(); var TCBC = Mapper.Map <IEnumerable <Transaction>, IEnumerable <TransactionViewModel> >(q2); #region foreach foreach (var item in TCBC) { item.VAT = _serviceService.GetById(item.ServiceId).VAT; item.Quantity = Convert.ToInt32(_transactionDetailService.GetAllByCondition("Sản lượng", item.ID).Money); var Fe = _transactionDetailService.GetFeeById("Số tiền cước", item.ID); if (Fe == null) { item.Fee = 0; } else { item.Fee = Fe.Money; } item.ServiceName = _serviceService.GetById(item.ServiceId).Name; item.EarnMoney = _transactionDetailService.GetTotalEarnMoneyByTransactionId(item.ID); var groupId = _serviceGroupService.GetSigleByServiceId(item.ID); if (groupId != null && (groupId.ID == 93 || groupId.ID == 75)) { item.IsReceive = true; item.TotalColection = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalPay = 0; } else { item.IsReceive = false; item.TotalPay = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalColection = 0; } } #endregion var resTCBC_temp = Mapper.Map <IEnumerable <TransactionViewModel>, IEnumerable <Get_General_TCBC> >(TCBC); var resTCBC_temp2 = Mapper.Map <IEnumerable <Get_General_TCBC>, IEnumerable <Get_General_TCBC_VM> >(resTCBC_temp); foreach (var item in resTCBC_temp2) { item.Sales = item.EarnMoney * (decimal)item.VAT; item.Tax = item.Sales - item.Sales / (decimal)item.VAT; var name = item.ServiceName; var qty = item.Quantity; var co = item.TotalColection; var p = item.TotalPay; var m1 = item.Sales; var f = item.Fee; var e = item.EarnMoney; } var resTCBC = Mapper.Map <IEnumerable <Get_General_TCBC_VM>, IEnumerable <Export_Template_TCBC> >(resTCBC_temp2); #endregion #region PPTT var q3 = _trasactionService.GetByCondition_PPTT(fd, td, districtId, poId, currentUser); var c6 = q3.Count(); var PPTT = Mapper.Map <IEnumerable <Transaction>, IEnumerable <TransactionViewModel> >(q3); foreach (var item in PPTT) { item.VAT = _serviceService.GetById(item.ServiceId).VAT; item.Quantity = Convert.ToInt32(_transactionDetailService.GetAllByCondition("Sản lượng", item.ID).Money); item.ServiceName = _serviceService.GetById(item.ServiceId).Name; if (!item.IsCash) { item.TotalDebt = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalCash = 0; } else { item.TotalCash = _transactionDetailService.GetTotalMoneyByTransactionId(item.ID); item.TotalDebt = 0; } item.EarnMoney = _transactionDetailService.GetTotalEarnMoneyByTransactionId(item.ID); item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } var resPPTT = Mapper.Map <IEnumerable <TransactionViewModel>, IEnumerable <Export_Template_VM> >(PPTT); #endregion await ReportHelper.RP2_1(resBCCP.ToList(), resPPTT.ToList(), resTCBC.ToList(), fullPath, vm); break; #endregion customFill Test #region case 3 Bảng kê thu tiền theo nhân viên case 3: vm.FunctionName = "Bảng kê thu tiền theo nhân viên"; // =============== BCCP =================== var c3_bccp = _statisticService.Export_By_Service_Group_And_Time_District_Po_BCCP(fromDate, toDate, districtId, poId, currentUser, userSelected); int test = c3_bccp.Count(); var responseBCCP3 = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP>, IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM> >(c3_bccp); foreach (var item in responseBCCP3) { item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } var c3_bccp_final = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM>, IEnumerable <Export_Template_VM> >(responseBCCP3); //foreach (var item in responseBCCP3) //{ // item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; //} // =============== PPTT =================== var c3_pptt = _statisticService.Export_By_Service_Group_And_Time_District_Po_PPTT(fromDate, toDate, districtId, poId, currentUser, userSelected); test = c3_pptt.Count(); var responsePPTT3 = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP>, IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM> >(c3_pptt); foreach (var item in responsePPTT3) { item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; item.TotalVat = (item.TotalCash + item.TotalDebt) - ((item.TotalCash + item.TotalDebt) / (decimal)item.VAT); } var c3_pptt_final = Mapper.Map <IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP_VM>, IEnumerable <Export_Template_VM> >(responsePPTT3); //foreach (var item in responsePPTT3) //{ // item.TotalMoneyBeforeVat = (item.TotalCash + item.TotalDebt) / (decimal)item.VAT; //} // =============== TCBC =================== var c3_tcbc = _statisticService.Get_General_TCBC(fromDate, toDate, districtId, poId, currentUser, userSelected); test = c3_tcbc.Count(); var responseTCBC3 = Mapper.Map <IEnumerable <Get_General_TCBC>, IEnumerable <Get_General_TCBC_VM> >(c3_tcbc); foreach (var item in responseTCBC3) { item.Tax = item.Sales - item.Sales / (decimal)item.VAT; } var c3_tcbc_final = Mapper.Map <IEnumerable <Get_General_TCBC_VM>, IEnumerable <Export_Template_TCBC> >(responseTCBC3); //var c3_tcbc = _statisticService.Export_By_Service_Group_TCBC(fromDate, toDate, districtId, poId, currentUser, userSelected); //test = c3_tcbc.Count(); //var responseTCBC3 = Mapper.Map<IEnumerable<Export_By_Service_Group_TCBC>, IEnumerable<Export_By_Service_Group_TCBC_Vm>>(c3_tcbc); //foreach (var item in responseTCBC3) //{ // item.TotalMoney = (item.TotalColection + item.TotalPay) / (decimal)item.VAT; //} //var responseOther3 = _statisticService.Export_By_Service_Group_And_Time(fromDate, toDate, otherId, districtId, poId, userId); await ReportHelper.RP2_1(c3_bccp_final.ToList(), c3_pptt_final.ToList(), c3_tcbc_final.ToList(), fullPath, vm); break; #endregion case 3 Bảng kê thu tiền theo nhân viên #region feature function case 4: vm.FunctionName = "Bảng kê thu tiền theo dịch vụ"; break; case 5: vm.FunctionName = "Bảng kê thu tiền theo nhân viên và dịch vụ"; break; default: vm.FunctionName = "Chức năng khác"; break; #endregion feature function } #endregion case 3 Bảng kê thu tiền theo nhân viên return(request.CreateErrorResponse(HttpStatusCode.OK, Path.Combine(folderReport, fileName))); } catch (Exception ex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } }
public Model.Models.Service Add(Model.Models.Service service) { return(_serviceRepository.Add(service)); }
public SaveServiceTests() { _serviceId = Guid.NewGuid(); _serviceVersionedId = Guid.NewGuid(); _channelId = Guid.NewGuid(); _channelVersionedId = Guid.NewGuid(); SetupTypesCacheMock <ServiceType>(); SetupTypesCacheMock <ServiceChargeType>(); var serviceVersioned = new ServiceVersioned { Id = _serviceVersionedId, UnificRootId = _serviceId, UnificRoot = new Model.Models.Service() { Id = _serviceId, ServiceServiceChannels = new List <ServiceServiceChannel>() }, Organization = new Model.Models.Organization() }; var channelVersioned = EntityGenerator.CreateEntity <ServiceChannelVersioned, ServiceChannel, ServiceChannelLanguageAvailability>(PublishedId, _channelId, _channelVersionedId); channelVersioned.UnificRoot = new ServiceChannel { Id = _channelId, Versions = new List <ServiceChannelVersioned> { channelVersioned } }; var connectionList = new List <ServiceServiceChannel> { new ServiceServiceChannel { Service = serviceVersioned.UnificRoot, ServiceId = serviceVersioned.UnificRootId, ServiceChannel = channelVersioned.UnificRoot, ServiceChannelId = channelVersioned.UnificRootId } }; // for PUT/SAVE translationManagerVModelMockSetup.Setup(t => t.Translate <IVmOpenApiServiceInVersionBase, ServiceVersioned>(It.IsAny <IVmOpenApiServiceInVersionBase>(), It.IsAny <IUnitOfWorkWritable>())) .Returns((IVmOpenApiServiceInVersionBase x, IUnitOfWorkWritable y) => { if (!string.IsNullOrEmpty(x.StatutoryServiceGeneralDescriptionId)) { serviceVersioned.StatutoryServiceGeneralDescriptionId = x.StatutoryServiceGeneralDescriptionId.ParseToGuid(); } if (!string.IsNullOrEmpty(x.PublishingStatus)) { serviceVersioned.PublishingStatusId = PublishingStatusCache.Get(x.PublishingStatus); } if (x.ServiceNames?.Count > 0) { serviceVersioned.ServiceNames = new List <ServiceName>(); x.ServiceNames.ForEach(n => serviceVersioned.ServiceNames.Add(new ServiceName { Name = n.Value })); } if (!string.IsNullOrEmpty(x.Type)) { serviceVersioned.TypeId = TypeCache.Get <ServiceType>(x.Type); } if (!string.IsNullOrEmpty(x.ServiceChargeType)) { serviceVersioned.ChargeTypeId = TypeCache.Get <ServiceChargeType>(x.ServiceChargeType); } return(serviceVersioned); }); translationManagerVModelMockSetup.Setup(t => t.Translate <V7VmOpenApiServiceAndChannelRelationAstiInBase, Model.Models.Service>(It.IsAny <V7VmOpenApiServiceAndChannelRelationAstiInBase>(), It.IsAny <IUnitOfWorkWritable>())) .Returns((V7VmOpenApiServiceAndChannelRelationAstiInBase x, IUnitOfWorkWritable y) => { var service = new Model.Models.Service(); if (x.ChannelRelations?.Count > 0) { service.ServiceServiceChannels = new List <ServiceServiceChannel>(); x.ChannelRelations.ForEach(c => { var cv = EntityGenerator.CreateEntity <ServiceChannelVersioned, ServiceChannel, ServiceChannelLanguageAvailability>(PublishedId, c.ChannelGuid, _channelVersionedId); cv.UnificRoot = new ServiceChannel { Id = c.ChannelGuid, Versions = new List <ServiceChannelVersioned> { cv } }; var connection = new ServiceServiceChannel { ServiceChannelId = c.ChannelGuid, ServiceChannel = cv.UnificRoot }; if (c.Description?.Count > 0) { connection.ServiceServiceChannelDescriptions = new List <ServiceServiceChannelDescription>(); c.Description.ForEach(d => { var description = new ServiceServiceChannelDescription { Description = d.Value }; connection.ServiceServiceChannelDescriptions.Add(description); }); service.ServiceServiceChannels.Add(connection); } }); } return(service); }); ServiceRepoMock.Setup(g => g.All()).Returns((new List <ServiceVersioned> { serviceVersioned }).AsQueryable()); ConnectionRepoMock.Setup(g => g.All()).Returns(connectionList.AsQueryable()); unitOfWorkMockSetup.Setup(uw => uw.ApplyIncludes( It.IsAny <IQueryable <ServiceVersioned> >(), It.IsAny <Func <IQueryable <ServiceVersioned>, IQueryable <ServiceVersioned> > >(), It.IsAny <bool>() )).Returns(new List <ServiceVersioned> { serviceVersioned }.AsQueryable()); unitOfWorkMockSetup.Setup(uw => uw.ApplyIncludes( It.IsAny <IQueryable <ServiceServiceChannel> >(), It.IsAny <Func <IQueryable <ServiceServiceChannel>, IQueryable <ServiceServiceChannel> > >(), It.IsAny <bool>() )).Returns(connectionList.AsQueryable()); // for GET translationManagerMockSetup.Setup(t => t.Translate <ServiceVersioned, VmOpenApiServiceVersionBase>(It.IsAny <ServiceVersioned>())) .Returns((ServiceVersioned sv) => { if (sv == null) { return(null); } var vm = new VmOpenApiServiceVersionBase() { Id = sv.UnificRootId, StatutoryServiceGeneralDescriptionId = sv.StatutoryServiceGeneralDescriptionId, }; if (sv.PublishingStatusId.IsAssigned()) { vm.PublishingStatus = PublishingStatusCache.GetByValue(sv.PublishingStatusId); } if (sv.ServiceNames?.Count > 0) { vm.ServiceNames = new List <VmOpenApiLocalizedListItem>(); sv.ServiceNames.ForEach(n => vm.ServiceNames.Add(new VmOpenApiLocalizedListItem { Value = n.Name })); } if (sv.UnificRoot?.ServiceServiceChannels?.Count > 0) { vm.ServiceChannels = new List <V7VmOpenApiServiceServiceChannel>(); sv.UnificRoot.ServiceServiceChannels.ForEach(c => { var channel = new V7VmOpenApiServiceServiceChannel { ServiceChannel = new VmOpenApiItem { Id = c.ServiceChannelId } }; vm.ServiceChannels.Add(channel); }); } return(vm); }); }