Exemple #1
0
        protected void GiveAccessButton_Click(object sender, EventArgs e)
        {
            if (IsValid)
            {
                Company foundCompany = Company.GetCompanyByCompanyNumber(ABNTextBox.Text.Trim());

                if (foundCompany == null)
                {
                    GiveAccessErrorLabel.Text = "Retailer not found. Contact [email protected]";
                }
                else if (AllowedStore.GetAllowedStoreByCustomerSupplier(foundCompany.company_id, homeCompany.company_id) != null)
                {
                    GiveAccessErrorLabel.Text = "Retailer already has access, if you wish to give Member access , delete them first from the Allowed stores list and then add them again here.";
                }
                else
                {
                    AllowedStore newPermission = AllowedStore.CreateAllowedStore();

                    newPermission.customer_id    = foundCompany.company_id;
                    newPermission.supplier_id    = homeCompany.company_id;
                    newPermission.account_number = AccountNumberTextBox.Text.Trim();
                    newPermission.is_member      = Convert.ToBoolean(MemberRadioButtonList.SelectedValue);

                    newPermission.creation_datetime = DateTime.UtcNow;
                    newPermission.authoriser_email  = loggedInAdmin.email;

                    newPermission.Save();

                    GiveAccessErrorLabel.Text = "Retailer added successfully.";

                    PopulateCustomers();
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            loggedInAdmin = Helpers.GetLoggedInAdmin();
            homeCompany   = Helpers.GetCurrentCompany();

            if (!IsPostBack)
            {
                SupplierDropDownList.DataSource = AllowedStore.GetSuppliers(homeCompany.company_id);
                SupplierDropDownList.DataBind();
            }
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            loggedInAdmin = Helpers.GetLoggedInAdmin();
            homeCompany   = Helpers.GetCurrentCompany();
            currentOrder  = Helpers.GetRequestedPurchaseOrder();
            permission    = AllowedStore.GetAllowedStoreByCustomerSupplier(homeCompany.company_id, currentOrder.supplier_id);

            if (!(Helpers.IsAuthorizedAdmin(loggedInAdmin, homeCompany)))
            {
                Response.Redirect("/status.aspx?error=notadmin");
            }
            else if (!(currentOrder.customer_id == homeCompany.company_id || currentOrder.supplier_id == homeCompany.company_id))
            {
                Response.Redirect("/status.aspx?error=genericerror");
            }

            if (!IsPostBack)
            {
                PopulateDetails();

                PopulateOrderItems();

                PopulaterInvoices();
            }

            if (currentOrder.is_submitted)
            {
                StatusLabel.Text = "Submitted and waiting for fulfillment";

                EditableOrderItemsGridView.Visible = false;
            }
            else if (currentOrder.InvoicesBypurchaseorder_.Count > 0)
            {
                StatusLabel.Text = "Fulfilled";
                EditableOrderItemsGridView.Visible = false;
            }
            else
            {
                StatusLabel.Text = "Waiting to submit";

                if (currentOrder.customer_id == homeCompany.company_id)
                {
                    SubmitButton.Visible     = true;
                    FindProductPanel.Visible = true;
                }

                EditableOrderItemsGridView.Visible = true;
                FrozenOrderItemsGridView.Visible   = false;
            }
        }
Exemple #4
0
        protected void DeletePermissionImageButton_Command(object sender, CommandEventArgs e)
        {
            ImageButton ib         = (ImageButton)sender;
            int         customerID = Convert.ToInt32(ib.CommandArgument);

            try
            {
                AllowedStore permission = AllowedStore.GetAllowedStoreByCustomerSupplier(customerID, homeCompany.company_id);
                permission.Delete();
                homeCompany.Refresh();
                PopulateCustomers();
            }
            catch
            {
                throw;
            }
        }
Exemple #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            loggedInAdmin = Helpers.GetLoggedInAdmin();
            homeCompany   = Helpers.GetCurrentCompany();

            if (!(Helpers.IsAuthorizedAdmin(loggedInAdmin, homeCompany)))
            {
                Response.Redirect("/status.aspx?error=notadmin");
            }
            else if (!homeCompany.is_customer)
            {
                Response.Redirect("/status.aspx?error=notcustomer");
            }


            if (!IsPostBack)
            {
                SuppliersDropDownList.DataSource = AllowedStore.GetSuppliers(homeCompany.company_id);
                SuppliersDropDownList.DataBind();
            }
        }
Exemple #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            loggedInAdmin  = Helpers.GetLoggedInAdmin();
            homeCompany    = Helpers.GetCurrentCompany();
            currentInvoice = Helpers.GetRequestedInvoice();
            permission     = AllowedStore.GetAllowedStoreByCustomerSupplier(homeCompany.company_id, currentInvoice.supplier_id);

            if (!(Helpers.IsAuthorizedAdmin(loggedInAdmin, homeCompany)))
            {
                Response.Redirect("/status.aspx?error=notadmin");
            }
            else if (!(currentInvoice.customer_id == homeCompany.company_id || currentInvoice.supplier_id == homeCompany.company_id))
            {
                Response.Redirect("/status.aspx?error=genericerror");
            }

            if (!IsPostBack)
            {
                PopulateDetails();
                PopulateInvoiceItems();
            }
        }
 private void PopulateSuppliers()
 {
     OurSuppliersGridView.DataSource = AllowedStore.GetSuppliers(homeCompany.company_id);
     OurSuppliersGridView.DataBind();
 }
Exemple #8
0
        protected void CreateInvoiceImageButton_Command(object sender, CommandEventArgs e)
        {
            ImageButton ib = (ImageButton)sender;
            int         purchaseOrderId = Convert.ToInt32(ib.CommandArgument);

            try
            {
                PurchaseOrder foundOrder = PurchaseOrder.GetPurchaseOrder(purchaseOrderId);
                AllowedStore  permission = AllowedStore.GetAllowedStoreByCustomerSupplier(foundOrder.customer_id, homeCompany.company_id);

                Invoice newInvoice = foundOrder.CreateInvoice();

                newInvoice.customer_id       = foundOrder.customer_id;
                newInvoice.supplier_id       = foundOrder.supplier_id;
                newInvoice.freight           = 10;
                newInvoice.total             = 0;
                newInvoice.creation_datetime = DateTime.UtcNow;

                newInvoice.Save();

                newInvoice.Refresh();

                foreach (var item in foundOrder.PurchaseOrderItemsBypurchaseorder_)
                {
                    string barcode  = item.barcode;
                    double quantity = item.quantity;

                    var foundProduct = SupplierProduct.findProductByBarcode(homeCompany.company_id, barcode);

                    if (foundProduct != null)
                    {
                        InvoiceItem newItem = newInvoice.CreateInvoiceItem();
                        newItem.barcode      = foundProduct.barcode;
                        newItem.cost_price   = foundProduct.CalculateApplicableCost(quantity, permission.is_member);
                        newItem.description  = foundProduct.description;
                        newItem.product_code = foundProduct.product_code;
                        newItem.quantity     = quantity;
                        newItem.is_GST       = foundProduct.is_GST;
                        newItem.RRP          = foundProduct.RRP;
                        newItem.Save();
                    }
                }

                newInvoice.total = newInvoice.InvoiceItemsByinvoice_.Sum(i => i.subTotal) + newInvoice.freight;
                newInvoice.tax   = newInvoice.InvoiceItemsByinvoice_.Sum(i => i.taxAmount);

                if (!newInvoice.customer_.has_POSSystem)
                {
                    newInvoice.is_downloaded       = true;
                    newInvoice.downloaded_datetime = newInvoice.creation_datetime;
                }
                else
                {
                    newInvoice.is_downloaded = false;
                }

                newInvoice.Save();
                newInvoice.Refresh();

                EmailHelper.SendInvoice(newInvoice);


                PopulateOrderLists();
            }
            catch
            {
                throw;
            }
        }
Exemple #9
0
        public OrderResponse UploadPurchaseOrders(int companyID, string password, List <LocalPurchaseOrder> orders)
        {
            var newResponse = new OrderResponse();

            newResponse.is_error      = false;
            newResponse.errorMessage  = "";
            newResponse.statusMessage = "";
            try
            {
                Company currentCompany = Company.GetCompany(companyID);

                if (currentCompany == null)
                {
                    newResponse.is_error     = true;
                    newResponse.errorMessage = "NoCompany";
                }
                else
                {
                    if (password != currentCompany.api_key)
                    {
                        newResponse.is_error     = true;
                        newResponse.errorMessage = "IncorrectPassword";
                    }
                    else
                    {
                        foreach (var order in orders)
                        {
                            //Check for duplicate barcodes.
                            List <string> duplicateBarcodes = order.itemList.GroupBy(i => i.barcode)
                                                              .Where(g => g.Count() > 1)
                                                              .Select(g => g.Key)
                                                              .ToList();
                            if (duplicateBarcodes.Count > 0)
                            {
                                string barcodes = String.Join("\r\n", duplicateBarcodes.ToArray());
                                newResponse.is_error      = true;
                                newResponse.errorMessage += "Error with Purchase Order: " + order.local_code + ". Duplicate barcodes: \r\n " + barcodes;
                            }
                            else
                            {
                                var supplier = Company.GetCompany(order.supplier_id);
                                if (supplier == null)
                                {
                                    newResponse.is_error      = true;
                                    newResponse.errorMessage += "Error with Purchase Order: " + order.local_code + ". Supplier not found\r\n";
                                }
                                else
                                {
                                    var permission = AllowedStore.GetAllowedStoreByCustomerSupplier(currentCompany.company_id, supplier.company_id);
                                    if (permission == null)
                                    {
                                        newResponse.is_error      = true;
                                        newResponse.errorMessage += "Error with Purchase Order: " + order.local_code + ". You don't have an account with this supplier.\r\n";
                                    }
                                    else
                                    {
                                        if (PurchaseOrder.GetPurchaseOrdersByCustomerLocalCode(companyID, order.local_code).Count > 0)
                                        {
                                            newResponse.is_error      = true;
                                            newResponse.errorMessage += "Purchase order: " + order.local_code + " to " + supplier.name + " already submitted.\r\n";
                                        }
                                        else
                                        {
                                            PurchaseOrder newOrder = PurchaseOrder.CreatePurchaseOrder();
                                            newOrder.local_code        = order.local_code;
                                            newOrder.customer_id       = currentCompany.company_id;
                                            newOrder.supplier_id       = supplier.company_id;
                                            newOrder.person            = "HealthStop POS Client";
                                            newOrder.creation_datetime = order.order_datetime;


                                            newOrder.Save();
                                            newOrder.Refresh();

                                            foreach (var item in order.itemList)
                                            {
                                                var foundSupplierProduct = SupplierProduct.findProductByBarcode(supplier.company_id, item.barcode);

                                                if (foundSupplierProduct == null)
                                                {
                                                    newResponse.is_error      = true;
                                                    newResponse.errorMessage += "Error with Purchase Order: " + order.local_code + "\r\nProduct not found in supplier list : " + item.barcode + "\r\nOrder submitted without this product." + "\r\n";
                                                }
                                                else
                                                {
                                                    var newItem = PurchaseOrderItem.CreatePurchaseOrderItem();
                                                    newItem.purchaseorder_id = newOrder.purchaseorder_id;
                                                    newItem.product_code     = foundSupplierProduct.product_code;
                                                    newItem.barcode          = foundSupplierProduct.barcode;
                                                    newItem.description      = foundSupplierProduct.description;
                                                    newItem.cost_price       = foundSupplierProduct.CalculateApplicableCost(item.quantity, permission.is_member);
                                                    newItem.quantity         = item.quantity;

                                                    newItem.Save();
                                                }
                                            }

                                            newOrder.Refresh();
                                            if (newOrder.PurchaseOrderItemsBypurchaseorder_.Count == 0)
                                            {
                                                newResponse.is_error      = true;
                                                newResponse.errorMessage += "Error with Purchase Order: " + order.local_code + " No items to order" + "\r\n";
                                                newOrder.Delete();
                                            }
                                            else
                                            {
                                                EmailHelper.SendXMLOrder("HealthStop Auto", currentCompany, supplier, newOrder.createEDI());
                                                newOrder.submitted_datetime = DateTime.UtcNow;
                                                newOrder.is_submitted       = true;
                                                newOrder.Save();

                                                newResponse.statusMessage += "Purchase Order: " + order.local_code + ". sent successfully to " + supplier.name + "\r\n";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                newResponse.is_error     = true;
                newResponse.errorMessage = "GenericError";
                LogHelper.WriteError(ex.ToString());
            }
            return(newResponse);
        }
Exemple #10
0
 private void PopulateCustomers()
 {
     CustomersGridView.DataSource = AllowedStore.GetCustomers(homeCompany.company_id);
     CustomersGridView.DataBind();
 }