Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> GetSalesLedger(int id)
        {
            SalesLedger salesLedger = await db.SalesLedgers.FindAsync(id);

            if (salesLedger == null)
            {
                return(NotFound());
            }

            return(Ok(salesLedger));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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());
        }