Example #1
0
        public ActionResult Search(string paymentCapturedTrue, string paymentCapturedFalse, string orderShippedTrue, string orderShippedFalse, DateTime?orderPlacedFrom, DateTime?orderPlacedTo, string email, string firstName, string lastName, int?numberToQuery)
        {
            try
            {
                if (numberToQuery != null)
                {
                    CustomerInfo CustInfo = new CustomerInfo();

                    CustInfo.Email     = email;
                    CustInfo.FirstName = firstName;
                    CustInfo.LastName  = lastName;

                    bool?PaymentCaptured = null;
                    bool?OrderShipped    = null;

                    if (!string.IsNullOrWhiteSpace(paymentCapturedTrue) && string.IsNullOrWhiteSpace(paymentCapturedFalse))
                    {
                        PaymentCaptured = true;
                    }
                    else if (string.IsNullOrWhiteSpace(paymentCapturedTrue) && !string.IsNullOrWhiteSpace(paymentCapturedFalse))
                    {
                        PaymentCaptured = false;
                    }

                    if (!string.IsNullOrWhiteSpace(orderShippedTrue) && string.IsNullOrWhiteSpace(orderShippedFalse))
                    {
                        OrderShipped = true;
                    }
                    else if (string.IsNullOrWhiteSpace(orderShippedTrue) && !string.IsNullOrWhiteSpace(orderShippedFalse))
                    {
                        OrderShipped = false;
                    }

                    ViewBag.paymentCapturedTrue  = paymentCapturedTrue;
                    ViewBag.paymentCapturedFalse = paymentCapturedFalse;
                    ViewBag.orderShippedTrue     = orderShippedTrue;
                    ViewBag.orderShippedFalse    = orderShippedFalse;
                    ViewBag.orderPlacedFrom      = orderPlacedFrom;
                    ViewBag.orderPlacedTo        = orderPlacedTo;
                    ViewBag.email         = email;
                    ViewBag.firstName     = firstName;
                    ViewBag.lastName      = lastName;
                    ViewBag.numberToQuery = numberToQuery;

                    ViewBag.PurchasedOrderList = PurchaseOrderDetailsDAO.Search(PaymentCaptured != null ? PaymentCaptured.Value.ToString() : "", OrderShipped != null ? OrderShipped.Value.ToString() : "", orderPlacedFrom != null ? orderPlacedFrom.Value : DateTime.MinValue, orderPlacedTo != null ? orderPlacedTo.Value : DateTime.MinValue, CustInfo, numberToQuery != null ? numberToQuery.Value : 0);
                }
                else
                {
                    ViewBag.PurchasedOrderList = PurchaseOrderDetailsDAO.Search("", "", DateTime.MinValue, DateTime.MinValue, new CustomerInfo(), 10);
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.Search()" + e.Message);

                AddWebUserMessageToSession(Request, String.Format("The server is having some difficulties performing searches, please contact administrator if error continues."), FAILED_MESSAGE_TYPE);
            }

            return(View());
        }
Example #2
0
 public StoreSupervisorController()
 {
     this._stockRecordDAO          = new StockRecordDAO();
     this._itemDAO                 = new ItemDAO();
     this._purchaseOrderDAO        = new PurchaseOrderDAO();
     this._purchaseOrderDetailsDAO = new PurchaseOrderDetailsDAO();
     _notificationChannelDAO       = new NotificationChannelDAO();
     _categoryDAO   = new CategoryDAO();
     _departmentDAO = new DepartmentDAO();
 }
Example #3
0
        public ActionResult Edit(string id)
        {
            try
            {
                ViewBag.PurchaseOrderDetail = PurchaseOrderDetailsDAO.LoadByBsonId(id);
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.Edit()" + e.Message);
            }

            return(View());
        }
Example #4
0
 public StoreManagerController()
 {
     _itemDAO                 = new ItemDAO();
     _supplieritemDAO         = new SupplierItemDAO();
     _purchaseOrderDAO        = new PurchaseOrderDAO();
     _purchaseOrderDetailsDAO = new PurchaseOrderDetailsDAO();
     _disbursementDAO         = new DisbursementDAO();
     _disbursementItemDAO     = new DisbursementItemDAO();
     _stockRecordDAO          = new StockRecordDAO();
     _notificationChannelDAO  = new NotificationChannelDAO();
     _requisitionDAO          = new RequisitionDAO();
     _requisitionItemDAO      = new RequisitionItemDAO();
     _categoryDAO             = new CategoryDAO();
     _departmentDAO           = new DepartmentDAO();
 }
Example #5
0
        public ActionResult ShipOrder(string id, string trackingNumber)
        {
            try
            {
                PurchaseOrderDetails PurchaseOrderDetail = PurchaseOrderDetailsDAO.LoadByBsonId(id);

                PurchaseOrderDetail.PayPalOrderDetails.ShippingTrackingNumber = trackingNumber;
                PurchaseOrderDetail.PayPalOrderDetails.OrderShippedDateUtc    = DateTime.UtcNow;

                if (PurchaseOrderDetailsDAO.Save(PurchaseOrderDetail))
                {
                    Chimera.Core.Notifications.PurchaseOrder.ProcessPurchaseOrderShipped(PurchaseOrderDetail);

                    try
                    {
                        List <SettingGroup> SettingGroupList = SettingGroupDAO.LoadByMultipleGroupNames(new List <string> {
                            SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS, SettingGroupKeys.EMAIL_SETTINGS
                        });

                        SettingGroup EmailSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.EMAIL_SETTINGS)).FirstOrDefault();

                        SettingGroup TemplateSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS)).FirstOrDefault();

                        Chimera.Emails.Ecommerce.SendOrderShippedEmail(PurchaseOrderDetail, EmailSettings.GetSettingVal(EmailSettingKeys.CustomerOrderShippedEmail), EmailSettings.GetSettingVal(EmailSettingKeys.SenderEmailAddress), TemplateSettings.GetSettingVal("WebsiteTitle"));
                    }
                    catch (Exception e)
                    {
                        CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.ShipOrder.SendEmail()" + e.Message);
                    }

                    AddWebUserMessageToSession(Request, String.Format("Tracking # added and user notified order shipped!"), SUCCESS_MESSAGE_TYPE);
                }
                else
                {
                    AddWebUserMessageToSession(Request, String.Format("Unable to add tracking # and email user of shipped order."), FAILED_MESSAGE_TYPE);
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.ShipOrder()" + e.Message);
            }

            return(RedirectToAction("Search", "PurchaseOrders"));
        }
Example #6
0
 //private readonly NotificationChannelDAO _notificationChannelDAO;
 //private readonly EmployeeDAO _employeeDAO;
 public StoreClerkController()
 {
     this._disbursementDAO         = new DisbursementDAO();
     this._requisitionDAO          = new RequisitionDAO();
     this._requisitionItemDAO      = new RequisitionItemDAO();
     this._stockRecordDAO          = new StockRecordDAO();
     this._disbursementItemDAO     = new DisbursementItemDAO();
     this._purchaseOrderDAO        = new PurchaseOrderDAO();
     this._itemDAO                 = new ItemDAO();
     this._statusDAO               = new StatusDAO();
     this._purchaseOrderDetailsDAO = new PurchaseOrderDetailsDAO();
     this._employeeDAO             = new EmployeeDAO();
     this._collectionpointDAO      = new CollectionPointDAO();
     this._notificationChannelDAO  = new NotificationChannelDAO();
     this._notificationDAO         = new NotificationDAO();
     this._supplierItemDAO         = new SupplierItemDAO();
     //this._notificationChannelDAO = new NotificationChannelDAO();
     //this._employeeDAO = new EmployeeDAO();
 }
Example #7
0
        public ActionResult CapturePayment(string id)
        {
            try
            {
                PurchaseOrderDetails PurchaseOrderDetail = PurchaseOrderDetailsDAO.LoadByBsonId(id);

                SettingGroup PayPalSettings = SettingGroupDAO.LoadSettingGroupByName(SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS);

                //create auth header obj
                AuthHeader PayPalAuthHeader = Chimera.Core.PurchaseOrders.PayPalAuthHeader.GetAuthHeaderFromSetting(PayPalSettings);

                OrderDetails CapturedOrderDetails = CompanyCommons.Ecommerce.PayPal.Functions.Execute.CapturePayment(PayPalAuthHeader, PurchaseOrderDetail.PayPalOrderDetails);

                if (CapturedOrderDetails != null)
                {
                    PurchaseOrderDetail.PayPalOrderDetails = CapturedOrderDetails;

                    if (PurchaseOrderDetailsDAO.Save(PurchaseOrderDetail))
                    {
                        Chimera.Core.Notifications.PurchaseOrder.ProcessPurchaseOrderPaymentCaptured(PurchaseOrderDetail);

                        AddWebUserMessageToSession(Request, String.Format("PayPal payment successfully captured!"), SUCCESS_MESSAGE_TYPE);
                    }
                    else
                    {
                        AddWebUserMessageToSession(Request, String.Format("Unable to capture PayPal payment at this time."), FAILED_MESSAGE_TYPE);
                    }
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Areas.Admin.Controllers.PurchaseOrdersController.CapturePayment()" + e.Message);
            }

            return(RedirectToAction("Search", "PurchaseOrders"));
        }
Example #8
0
        /// <summary>
        /// Called after the user reviews their order on our side right and wishes to finalize the purchase
        /// </summary>
        /// <returns></returns>
        public ActionResult FinalCheckout()
        {
            SiteContext.RecordPageView("Ecommerce_FinalCheckout");

            try
            {
                PurchaseOrderDetails PayPalPurchaseOrder = SiteContext.PayPalPurchaseOrder;

                if (PayPalPurchaseOrder != null && !string.IsNullOrWhiteSpace(PayPalPurchaseOrder.PayPalOrderDetails.PaypalInfo.Token))
                {
                    List <SettingGroup> SettingGroupList = SettingGroupDAO.LoadByMultipleGroupNames(new List <string> {
                        SettingGroupKeys.TEMPLATE_CUSTOM_SETTINGS, SettingGroupKeys.EMAIL_SETTINGS, SettingGroupKeys.ECOMMERCE_SETTINGS, SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS
                    });

                    SettingGroup PayPalSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.PAYPAL_PURCHASE_SETTINGS)).FirstOrDefault();

                    //create auth header obj
                    AuthHeader PayPalAuthHeader = Chimera.Core.PurchaseOrders.PayPalAuthHeader.GetAuthHeaderFromSetting(PayPalSettings);

                    OrderDetails FinalOrderDetails = CompanyCommons.Ecommerce.PayPal.Functions.Execute.FinalConfirmedAuthorization(PayPalAuthHeader, PayPalPurchaseOrder.PayPalOrderDetails);

                    if (FinalOrderDetails != null)
                    {
                        PayPalPurchaseOrder.PayPalOrderDetails = FinalOrderDetails;

                        //generate a new id so we can give the user a confirmation #
                        PayPalPurchaseOrder.Id = ObjectId.GenerateNewId().ToString();

                        //save to the database as an order
                        PurchaseOrderDetailsDAO.Save(PayPalPurchaseOrder);

                        //clear session cart
                        SiteContext.ClearShoppingCart();

                        //subtract stock from current products
                        Chimera.Core.PurchaseOrders.ProductStock.ProcessNewOrderStockLevels(PayPalSettings, PayPalPurchaseOrder);

                        //send emails
                        Chimera.Core.PurchaseOrders.Email.SendNewEcommerceOrderEmails(SettingGroupList, PayPalPurchaseOrder);

                        //add admin notification
                        Chimera.Core.Notifications.PurchaseOrder.ProcessNewPurchaseOrder(PayPalPurchaseOrder);

                        //return view
                        SettingGroup EcommerceSettings = SettingGroupList.Where(e => e.GroupKey.Equals(SettingGroupKeys.ECOMMERCE_SETTINGS)).FirstOrDefault();

                        ViewBag.ConfirmationNumber = PayPalPurchaseOrder.Id.ToString();
                        ViewBag.ViewType           = EcommerceSettings.GetSettingVal(ECommerceSettingKeys.CheckoutFinishedPage);

                        return(View("FinalCheckout", String.Format("~/Templates/{0}/Views/Shared/Template.Master", Models.ChimeraTemplate.TemplateName)));
                    }
                }
            }
            catch (Exception e)
            {
                CompanyCommons.Logging.WriteLog("ChimeraWebsite.Controllers.OrderController.FinalCheckout() " + e.Message);
            }

            //TODO: return 404 page instead?
            return(RedirectToAction("Index", "Home"));
        }