Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public ViewModelSale GetDetail(int Id)
        {
            var result = _iSaleRepository.Find(Id);

            if (result != null)
            {
                return(Mapper.Map <Sale, ViewModelSale>(result));
            }
            return(null);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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" }));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public SaleViewModel Find(int id)
 {
     return(mapper.Map <SaleViewModel>(saleRepository.Find(id)));
 }
Ejemplo n.º 9
0
        public IActionResult Get(int id)
        {
            var Item = saleRepository.Find(id);

            return(new ObjectResult(Item));
        }