public async Task <IHttpActionResult> PutSalesLedger(int id, SalesLedger salesLedger) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != salesLedger.id) { return(BadRequest()); } db.Entry(salesLedger).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SalesLedgerExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> GetSalesLedger(int id) { SalesLedger salesLedger = await db.SalesLedgers.FindAsync(id); if (salesLedger == null) { return(NotFound()); } return(Ok(salesLedger)); }
public async Task <IHttpActionResult> PostSalesLedger(SalesLedger salesLedger) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.SalesLedgers.Add(salesLedger); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = salesLedger.id }, salesLedger)); }
public async Task <IHttpActionResult> DeleteSalesLedger(int id) { SalesLedger salesLedger = await db.SalesLedgers.FindAsync(id); if (salesLedger == null) { return(NotFound()); } db.SalesLedgers.Remove(salesLedger); await db.SaveChangesAsync(); return(Ok(salesLedger)); }
private void AsyncInititalize(object sender, DoWorkEventArgs e) { try { // Execute the following code on the GUI thread. this.Invoke(new MethodInvoker(delegate { RenderLoading(true); })); }catch { } Sell = new Sell(); SellRegister = new SellRegister(); SalesLedger = new SalesLedger(); Reporting = new Reporting(); Products = new ProductsTab(); Customers = new UserControls.Dashboard.Customers(); Settings = new Settings(); UserTabSlider = new UserTab(); NotificationsTabSlider = new NotificationsTab(); }
public async Task <IHttpActionResult> PutDeliveryNote(int orderId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DeliveryNote deliveryNote = await db.DeliveryNotes.Where(b => b.orderId == orderId).SingleOrDefaultAsync(); if (deliveryNote == null) { return(BadRequest("Delivery note not created")); } deliveryNote.status = "delivered"; db.Entry(deliveryNote).State = EntityState.Modified; Order order = await db.Orders.FindAsync(deliveryNote.orderId); if (order == null) { return(NotFound()); } if (order.status == "delivered") { return(BadRequest("Order has been delivered already")); } order.status = "delivered"; db.Entry(order).State = EntityState.Modified; Invoice invoice = await db.Invoices.Where(b => b.orderid == order.id).SingleOrDefaultAsync(); if (invoice == null) { return(NotFound()); } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { return(StatusCode(HttpStatusCode.ExpectationFailed)); } //send delivery note email string subject = "Supreme Brands Delivery Note (Delivery Note Number: " + deliveryNote.deliveryNoteNumber; string body = "<html><head>"; body += "<style> table {font - family: arial, sans - serif;border - collapse: collapse;width: 100 %; }td, th { border: 1px solid #dddddd; text - align: left; padding: 8px;} tr: nth - child(even) { background - color: #dddddd;}</style> "; body += "</head><body><h3>Dear Sir/Madama</h3><br><p>This serves as a delivery note for " + order.branch.customer.tradingName + " for the " + order.branch.name + " branch.</p>"; body += "<h4>Invoice Number: " + order.invoiceNumber + "</h4>"; body += "<h4>Order Number: " + order.orderNumber + "</h4>"; body += "<h4>Delivery Note Number: " + deliveryNote.deliveryNoteNumber + "</h4>"; body += "<h4>Order Date: " + order.date.ToShortDateString() + "</h4><br>"; body += "<table><tr><th> Order Item name </th> <th> Quantity </th> <th>Price per unit ($)</th> <th>Amount ($)</th> </tr>"; double total = 0; foreach (OrderProduct item in order.orderProducts) { double cost = item.price * item.quantity; body += "<tr> <td> " + item.product.name + " </td><td>" + item.quantity + " </td> <td> " + item.price + " </td><td> " + cost + " </td></tr>"; total += cost; } body += "<tr> <td> <b>Total</b> </td><td> </td> <td> </td><td> <b>" + total + "</b> </td></tr> </table>"; body += "<br><br>Kind Regards<br> Supreme Brands Sales</body></html>"; if (order.branch.email != null) { //Email.sendEmail(order.branch.email, subject, body); } //send invoice email string invoiceSubject = "Supreme Brands Invoice (Invoice number: " + invoice.invoiceNumber + ")"; string invoiceBody = "<html><head>"; invoiceBody += "<style> table {font - family: arial, sans - serif;border - collapse: collapse;width: 100 %; }td, th { border: 1px solid #dddddd; text - align: left; padding: 8px;} tr: nth - child(even) { background - color: #dddddd;}</style> "; invoiceBody += "</head><body><h3>Dear Sir/Madama</h3><br><br><p>This servers as an Invoice to " + order.branch.customer.tradingName + " for the " + order.branch.name + " branch</p>"; invoiceBody += "<h4>Invoice Number: " + invoice.invoiceNumber + "</h4>"; invoiceBody += "<h4>Order Date: " + invoice.date.ToShortDateString() + "</h4><br>"; invoiceBody += "<table><tr><th> Order Item name </th> <th> Quantity </th> <th>Price per unit ($)</th> <th>Amount ($)</th> </tr> "; foreach (OrderProduct item in order.orderProducts) { double cost = item.price * item.quantity; invoiceBody += "<tr> <td> " + item.product.name + " </td><td>" + item.quantity + " </td> <td> " + item.price + " </td ><td> " + cost + " </td></tr>"; } invoiceBody += "<tr> <td> <b>Total</b> </td><td> </td> <td> </td><td> <b>" + total + "</b> </td></tr> </table>"; invoiceBody += "<br><p> <a href='" + invoice.invoiceUrl + "'>Click Here</a> to download the copy of the invoice</p>"; invoiceBody += "<br><br>Kind Regards<br> Supreme Brands Sales</body></html>"; if (order.branch.email != null) { //Email.sendEmail(order.branch.email, invoiceSubject, invoiceBody); } //update vat TimeZoneInfo timeInfo = TimeZoneInfo.FindSystemTimeZoneById("South Africa Standard Time"); DateTime userTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeInfo); Vat vat = new Vat() { date = userTime, initialVat = total * 0.15, remainingVat = total * 0.15, branch = order.branch, invoice = invoice }; db.Vats.Add(vat); //update sales ledger SalesLedger sale = new SalesLedger() { order = order, date = userTime, deliveryNote = deliveryNote }; db.SalesLedgers.Add(sale); //update debtors ledger db.SaveChanges(); return(Ok()); }