public async Task <IActionResult> PostVenteHuile([FromBody] VenteHuile venteHuile)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid model object"));
            }
            if (venteHuile == null)
            {
                return(BadRequest("Vente Huile object is null"));
            }
            if (!_venteHuileService.CheckQantityHuileInf(venteHuile))
            {
                return(BadRequest(new { error = "Quantité insifisante" }));
            }
            try
            {
                await _venteHuileService.InsertVenteHuileAsync(venteHuile);
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex));
            }
            return(CreatedAtAction("GetVenteHuile", new { id = venteHuile.Id }, venteHuile));
            //    var stockagehuile =  await _context.ProduitHuilles.Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefaultAsync();
            //    if (stockagehuile.Qte_En_Stock < venteHuile.Qte_Vente)
            //    {
            //        Ok("Quantité insifisante");
            //    }
            //    stockagehuile.Qte_En_Stock = stockagehuile.Qte_En_Stock - venteHuile.Qte_Vente;
            //    _context.Entry(stockagehuile).State = EntityState.Modified;
            //    _context.VenteHuiles.Add(venteHuile);

            //    await _context.SaveChangesAsync();
            //    return CreatedAtAction("GetVenteHuile", new { id = venteHuile.Id }, venteHuile);
        }
예제 #2
0
        public async Task InsertVenteHuileAsync(VenteHuile venteHuile)
        {
            produitHuilleInsert = null;
            produitHuilleInsert = await _context.ProduitHuilles.Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefaultAsync();

            produitHuilleInsert.Qte_En_Stock          = produitHuilleInsert.Qte_En_Stock - venteHuile.Qte_Vente;
            _context.Entry(produitHuilleInsert).State = EntityState.Modified;
            _context.VenteHuiles.Add(venteHuile);
            await SaveAsync();
        }
예제 #3
0
 public VenteHuileService(DataContext context, IMapper mapper)
 {
     _context            = context;
     _mapper             = mapper;
     produitHuilleInsert = new ProduitHuille();
     produitHuilleUpdate = new ProduitHuille();
     venteHuileUpdate    = new VenteHuile();
     produitHuilleDelete = new ProduitHuille();
     venteHuileDelete    = new VenteHuile();
     produitHuilleCheck  = new ProduitHuille();
     venteHuileCheck     = new VenteHuile();
 }
예제 #4
0
        public async Task DeletVenteHuileAsync(int id)
        {
            produitHuilleDelete = null;
            venteHuileDelete    = null;
            venteHuileDelete    = await _context.VenteHuiles.FindAsync(id);

            produitHuilleDelete = await _context.ProduitHuilles.Where(h => h.VarieteId == venteHuileDelete.VarieteId).SingleOrDefaultAsync();

            produitHuilleDelete.Qte_En_Stock          = produitHuilleDelete.Qte_En_Stock + venteHuileDelete.Qte_Vente;
            _context.Entry(produitHuilleDelete).State = EntityState.Modified;
            _context.VenteHuiles.Remove(venteHuileDelete);
            await SaveAsync();
        }
예제 #5
0
        public bool CheckQantityHuileInf(VenteHuile venteHuile)
        {
            var stockagehuile = _context.ProduitHuilles.Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefault();

            if (stockagehuile.Qte_En_Stock < venteHuile.Qte_Vente)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
예제 #6
0
        public async Task UpdateVenteHuileAsync(VenteHuile venteHuile)
        {
            produitHuilleUpdate = null;
            venteHuileUpdate    = null;
            produitHuilleUpdate = await _context.ProduitHuilles.Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefaultAsync();

            venteHuileUpdate = await _context.VenteHuiles.AsNoTracking().SingleOrDefaultAsync(c => c.Id == venteHuile.Id);

            produitHuilleUpdate.Qte_En_Stock          = produitHuilleUpdate.Qte_En_Stock + venteHuileUpdate.Qte_Vente;
            produitHuilleUpdate.Qte_En_Stock          = produitHuilleUpdate.Qte_En_Stock - venteHuile.Qte_Vente;
            _context.Entry(produitHuilleUpdate).State = EntityState.Modified;
            _context.Entry(venteHuile).State          = EntityState.Modified;
            await SaveAsync();
        }
예제 #7
0
 public bool CheckQantityHuileUpdateInf(VenteHuile venteHuile)
 {
     produitHuilleCheck = null; venteHuileCheck = null;
     produitHuilleCheck = _context.ProduitHuilles.AsNoTracking().Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefault();
     venteHuileCheck    = _context.VenteHuiles.AsNoTracking().SingleOrDefault(c => c.Id == venteHuile.Id);
     produitHuilleCheck.Qte_En_Stock = produitHuilleCheck.Qte_En_Stock + venteHuileCheck.Qte_Vente;
     if (produitHuilleCheck.Qte_En_Stock < venteHuile.Qte_Vente)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #8
0
        public FileDto GetUsersAsPdfAsync(VenteHuile venteHuile, float s)
        {
            //var tritu = venteHuile;
            HtmlToPdfDocumentVente = null;
            htmlVente = GetHTMLStringVenteHuile(venteHuile, s);

            ObjectSettingsVente.PagesCount  = true;
            ObjectSettingsVente.HtmlContent = htmlVente;
            ObjectSettingsVente.WebSettings.DefaultEncoding = "utf-8";
            ObjectSettingsVente.WebSettings.UserStyleSheet  = Path.Combine(Directory.GetCurrentDirectory(), "Assets", "Style.css");
            ObjectSettingsVente.WebSettings.LoadImages      = true;
            HtmlToPdfDocumentVente = new HtmlToPdfDocument()
            {
                GlobalSettings = globalSettings,
                Objects        = { ObjectSettingsVente }
            };
            return(new FileDto("UserList.pdf", _converter.Convert(HtmlToPdfDocumentVente)));
        }
예제 #9
0
        public string GetHTMLStringVenteHuile(VenteHuile venteHuile, float s)
        {
            StringBuilderVente.Clear();
            //var sb = new StringBuilder();
            StringBuilderVente.Append(@"
                        <html>
<head>
	<title>Vente huile PDF</title>
</ head >
<body >
 <img src='http://*****:*****@"
                    <p class='name'>{0}</p>
                    <p>Nom : {1}</p>
					<p>Gsm :{2}</p>
                     <p>Tel : {3}</p>
					
				</div>
				<div class='data right'>
					<div><h3>FACTURE VENTE N° 00 {4}</h3></div>
					<div class='date'>
						Date de Vente:{5}<br>
					</div>
				</div></div>"                , venteHuile.Client.Nom, venteHuile.Client.Gsm, venteHuile.Client.Tel, venteHuile.Client.Ville, venteHuile.Id, venteHuile.Date);
            StringBuilderVente.Append(@"
			
			<table border = '0' cellspacing='0' cellpadding='0'>
				<thead>
					<tr>
						<th class='desc'>Description</th>
						<th class='qty'>Huile</th>
						<th class='unit'>Prix Unitaire</th>
						<th class='total'>Montant</th>
					</tr>
				</thead>
				<tbody>
					<tr>"                    );
            StringBuilderVente.AppendFormat(@"
						<td class='desc'><h3>Type de variete : {0}    || Nombre Bidon : {1}</h3></td>
						<td class='qty'>{2} L</td>
						<td class='unit'>{3} DT</td>
						<td class='total'>{4}  DT</td>
					</tr>
					
				</tbody>
			</table>
 <p><br/><br/><br/>
			<div class='no-break'>
				<table class='grand-total'>
					<tbody>
<tr>
							<td class='desc'></td>
							<td class='unit' colspan='2'>RESTE A PAYER:</td>
							<td class='total'>{5}   DT</td>
						</tr>
						<tr>
							<td class='desc'></td>
							<td class='unit' colspan='2'>MONTANT TOTAL:</td>
							<td class='total'>{6} DT</td>
						</tr>
        ", venteHuile.Variete.Name, venteHuile.Qte_bidon, venteHuile.Qte_Vente, venteHuile.Prix_Unitaire, venteHuile.MontantVente, venteHuile.MontantVente - s, venteHuile.MontantVente);
            StringBuilderVente.Append(@"

                    </tbody>
				</table>
			</div>
		</div>
	</section>

</body>

</html>");
            return(StringBuilderVente.ToString());
        }
        public async Task <IActionResult> PutVenteHuile([FromRoute] int id, [FromBody] VenteHuile venteHuile)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }

                if (venteHuile == null)
                {
                    return(BadRequest("Vente Huile object is null"));
                }
                if (!_venteHuileService.VenteHuileExists(id))
                {
                    return(NotFound());
                }
                if (_venteHuileService.VenteHuileFacture(id))
                {
                    return(BadRequest(new { error = "Ne peut pas terminer cette action , car Vente Huile existe en facture" }));

                    // return BadRequest("Ne peut pas terminer cette action , car Vente Huile existe en facture");
                }
                if (_venteHuileService.CheckQantityHuileUpdateInf(venteHuile))
                {
                    return(BadRequest("Quantité insifisante"));
                }
                await _venteHuileService.UpdateVenteHuileAsync(venteHuile);

                return(NoContent());
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex));
            }
            //var stockagehuile = await _context.ProduitHuilles.Where(h => h.VarieteId == venteHuile.VarieteId).SingleOrDefaultAsync();
            //var venthuileDb = await _context.VenteHuiles.AsNoTracking().SingleOrDefaultAsync(c => c.Id == id);
            //stockagehuile.Qte_En_Stock = stockagehuile.Qte_En_Stock + venthuileDb.Qte_Vente;
            //if (stockagehuile.Qte_En_Stock < venteHuile.Qte_Vente)
            //{
            //    Ok("Quantité insifisante");
            //}
            //stockagehuile.Qte_En_Stock = stockagehuile.Qte_En_Stock - venteHuile.Qte_Vente;
            //_context.Entry(stockagehuile).State = EntityState.Modified;
            //_context.Entry(venteHuile).State = EntityState.Modified;

            //try
            //{
            //    await _context.SaveChangesAsync();
            //}
            //catch (DbUpdateConcurrencyException)
            //{
            //    if (!VenteHuileExists(id))
            //    {
            //        return NotFound();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}

            //return NoContent();
        }