public IActionResult SendEmail(int saleId) { var currentSale = saleRepository.Find(saleId); var currentUser = customerRepository.Find(currentSale.CustomerId); //Instantiate MimeMessage var message = new MimeMessage(); //From Address //cum vad clientii adresa mea message.From.Add(new MailboxAddress("Admin Online Invoice Generator", "*****@*****.**")); //To Address message.To.Add(new MailboxAddress(currentUser.Name, currentUser.Email)); //Subject message.Subject = "Factura a fost emisa!"; //Body message.Body = new TextPart("plain") { Text = "Factura a fost emisa" }; //Configure and send the message using (var client = new SmtpClient()) { client.Connect("smtp.gmail.com", 587, false); //adresa de pe care se dau mesajele client.Authenticate("*****@*****.**", "Matematica11"); client.Send(message); client.Disconnect(true); } return(RedirectToAction("index")); }
public async Task <IEnumerable <PeriodicReportDto> > GetAnnualReport(int year) { List <PeriodicReportDto> periodicReports = new List <PeriodicReportDto>(); for (int i = 1; i <= 12; i++) { PeriodicReportDto periodicReport = new PeriodicReportDto(); periodicReport.Period = Enum.GetName(typeof(eMonths), i - 1); periodicReport.Sales = ( await _saleRepositoryRepository.Find(x => x.Date.Year == year && x.Date.Month == i, x => x.Include(s => s.Payment)) ).Sum(x => x.Payment.Amount); periodicReport.Purchases = ( await _productEntryRepository.Find(x => x.Date.Year == year && x.Date.Month == i && x.IsEntry) ).Sum(x => x.Cost.HasValue ? x.Cost.Value : 0); periodicReport.Commissions = ( await _commissionRepository.Find(x => x.Date.Year == year && x.Date.Month == i) ).Sum(x => x.Value); periodicReport.FixedCosts = ( await _miscellaneousExpensesRepository.Find(x => x.Date.Year == year && x.Date.Month == i && x.IsFixed) ).Sum(x => x.Value); periodicReport.VariableCosts = ( await _miscellaneousExpensesRepository.Find(x => x.Date.Year == year && x.Date.Month == i && !x.IsFixed) ).Sum(x => x.Value); periodicReports.Add(periodicReport); } PeriodicReportDto finalResultReport = new PeriodicReportDto(); finalResultReport.Period = "Totales"; finalResultReport.Sales = periodicReports.Sum(x => x.Sales); finalResultReport.Purchases = periodicReports.Sum(x => x.Purchases); finalResultReport.Commissions = periodicReports.Sum(x => x.Commissions); finalResultReport.FixedCosts = periodicReports.Sum(x => x.FixedCosts); finalResultReport.VariableCosts = periodicReports.Sum(x => x.VariableCosts); periodicReports.Add(finalResultReport); return(periodicReports); }
public ViewModelSale GetDetail(int Id) { var result = _iSaleRepository.Find(Id); if (result != null) { return(Mapper.Map <Sale, ViewModelSale>(result)); } return(null); }
public Sale FindOrCreateSaleLead(CustomerDTO cus, int orderNo, DateTime date, Boolean finalised) { SaleLead lead = null; if (cus != null) { var cusSpec = new Specification <SaleLead>(c => c.CustomerId == cus.CustomerId); var saleSpec = new Specification <SaleLead>(s => s.Sale.OrderNumber == orderNo); var cusAndSale = cusSpec.And(saleSpec); lead = _repoSaleLead.Find(cusAndSale); } if (lead == null) { var orderSpec = new Specification <Sale>(x => x.OrderNumber == orderNo); var dateSpec = new Specification <Sale>(y => y.Date == date); var orderAndDate = orderSpec.And(dateSpec); var sale = _repoSale.Find(orderAndDate); if (sale == null) { sale = new Sale { Date = date, OrderNumber = orderNo }; _repoSale.Add(sale); } var state = _repoLeadState.AsQueryable().FirstOrDefault(); if (cus != null) { var customer = _repoCustomer.Get(cus.CustomerId); var newLead = new SaleLead { SaleId = sale.Id, Sale = sale, SaleLeadState = state, StateId = state.Id, Customer = customer, CustomerId = customer.Id }; _repoSaleLead.Add(newLead); return(sale); } else { var customer = _repoCustomer.AsQueryable().FirstOrDefault(); var newLead = new SaleLead { SaleId = sale.Id, Sale = sale, SaleLeadState = state, StateId = state.Id, Customer = customer, CustomerId = customer.Id }; _repoSaleLead.Add(newLead); return(sale); } } else { var sale = _repoSale.AsQueryable().FirstOrDefault(s => s.Id == lead.Sale.Id); return(sale); } }
public void GetSalesShouldReturnSalesItemQuantity() { ISaleRepository saleRepository = Substitute.For <ISaleRepository>(); IMapper mapper = Substitute.For <IMapper>(); string sales = Data.ResourceManager.GetString("Sales"); IEnumerable <Sale> lstSales = JsonConvert.DeserializeObject <IEnumerable <Sale> >(sales); saleRepository.Find(1).Returns(lstSales.First(s => s.Id == 1)); //ISaleCore controller = new SaleCore(saleRepository, mapper); //var result = controller.Find(1); //result.SaleItems.Should().HaveCount(2); }
public IActionResult EditSale(SalesModel model) { if (model != null) { var items = saleItemRepository.All().Where(x => x.SalesId == model.Id).ToList(); if (items.Any()) { foreach (var item in items) { saleItemRepository.Delete(item); } } var sale = saleRepository.Find(model.Id); sale.Notes = model.Notes; sale.PaymentMethod = model.PaymentMethod; sale.SaleCode = model.SaleCode; sale.CustomerId = model.CustomerId; sale.Total = model.Total; sale.SalesDate = model.SalesDate; sale.Status = model.Status; sale.Discount = model.Discount; sale.GrandTotal = model.GrandTotal; //add again foreach (var item in model.Items) { sale.Items.Add(new SalesItemsModel { Price = item.Price, Amount = item.Amount, Quantity = item.Quantity, Name = item.Name }); } saleRepository.Update(sale, model.Id); return(Json(new { error = false, message = "Ventes mises à jour avec succès" })); } return(Json(new { error = true, message = "n'a pas pu mettre à jour les ventes" })); }
private async Task <bool> IsDebtor(ClientDto clientDto) { var ownFeesIds = (await _saleRepository .Find( x => x.ClientId == clientDto.Id && x.PaymentType == Util.Enums.ePaymentTypes.OwnFees, x => x.Include(s => s.Payment) ) ) .Select(x => x.PaymentId); var result = (await _ownFeesRepository.Find(x => ownFeesIds.Contains(x.Id), x => x.Include(ow => ow.FeeList))).Select(x => x.FeeList) .Where( x => x.Any( ow => ow.PaymentDate == null && ow.ExpirationDate.ToLocalTime() <= DateTime.Now.ToLocalTime() ) ) .Count() > 0; return(result); }
public SaleViewModel Find(int id) { return(mapper.Map <SaleViewModel>(saleRepository.Find(id))); }
public IActionResult Get(int id) { var Item = saleRepository.Find(id); return(new ObjectResult(Item)); }