public ActionResult GetListTaxStoreIntegrate(string storeId) { PurchaseOrderModels model = new PurchaseOrderModels(); var lstTaxV2 = _factoryTax.GetListTaxV2(storeId, null, CurrentUser.ListOrganizationId); lstTaxV2 = lstTaxV2.Where(x => x.IsActive).ToList(); string Symbol = GetSymbol(storeId); List <POTaxModels> listItem = new List <POTaxModels>(); int OffSet = 0; lstTaxV2.ForEach(x => { listItem.Add(new POTaxModels { ID = x.ID, Name = x.Name, Percent = x.Percent, TaxType = x.TaxType, OffSet = OffSet++, Symbol = Symbol, sTaxType = (x.TaxType == (int)Commons.ETax.Inclusive) ? "Inclusive" : "Exclusive", Amount = 0 }); }); model.ListItemTax = listItem; return(PartialView("_ListItemTax", model)); }
public PartialViewResult Edit(string id) { PurchaseOrderModels model = GetDetail(id); model.Symbol = ""; return(PartialView("_Edit", model)); }
//=== //public ActionResult GetTaxInfo(string id) //{ // var taxDetail = _factoryTax.GetListTaxV2(null, id); // return Json(taxDetail, JsonRequestBehavior.AllowGet); //} public ActionResult Create() { PurchaseOrderModels model = new PurchaseOrderModels(); //model.GetListSupplierFromCompnay(listCompanyId); return(View(model)); }
public ActionResult Edit(PurchaseOrderModels model) { try { if (!model.StoreIntegrate) { if (model.TaxType == (int)Commons.ETax.AddOn) { if (model.TaxValue < 0 || model.TaxValue > 100) { ModelState.AddModelError("TaxValue", CurrentUser.GetLanguageTextFromKey("Please enter a value greater than or equal to 0 and maximun 100%")); } } } if (model.DeliveryDate.Date < model.PODate.Date) { ModelState.AddModelError("DeliveryDate", CurrentUser.GetLanguageTextFromKey("Delivery date cannot be sooner than PO date")); } model.ModifierBy = CurrentUser.Email; model.ModifierDate = DateTime.Now; if (!ModelState.IsValid) { //model = GetDetail(model.Id); var ListSupplierInfo = GetListSuppliers(model.StoreID); var ListSupplier = new SelectList(ListSupplierInfo, "Id", "Name"); model.ListSupplier = ListSupplier.ToList(); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(PartialView("_Edit", model)); } //==================== model.ListItem = model.ListItem.Where(x => x.Delete != (int)Commons.EStatus.Deleted).ToList(); List <string> listItemOnData = _factory.listItemOnData(model.Id); var listIdDelete = listItemOnData.Where(a => !(model.ListItem.Select(x => x.Id).ToList()).Any(a1 => a1 == a)).ToList(); string msg = ""; var result = _factory.Update(model, listIdDelete, ref msg); if (result) { return(RedirectToAction("Index")); } else { //model = GetDetail(model.Id); var ListSupplierInfo = GetListSuppliers(model.StoreID); var ListSupplier = new SelectList(ListSupplierInfo, "Id", "Name"); model.ListSupplier = ListSupplier.ToList(); ModelState.AddModelError("StoreID", msg); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(PartialView("_Edit", model)); } } catch (Exception ex) { _logger.Error("PurchaseOrderEdit: " + ex); return(new HttpStatusCodeResult(400, ex.Message)); } }
public ActionResult Export(PurchaseOrderModels model) { try { if (model.ListStores == null) { ModelState.AddModelError("ListStores", CurrentUser.GetLanguageTextFromKey("Please choose store")); return(View(model)); } XLWorkbook wb = new XLWorkbook(); var wsPO = wb.Worksheets.Add("PO List"); var wsPOD = wb.Worksheets.Add("Ingredient List"); //var wsPOR = wb.Worksheets.Add("Purchase Order Receipt"); List <SelectListItem> listStore = (List <SelectListItem>)ViewBag.ListStore; model.PODate = new DateTime(model.PODate.Year, model.PODate.Month, model.PODate.Day, 0, 0, 0); model.DeliveryDate = new DateTime(model.DeliveryDate.Year, model.DeliveryDate.Month, model.DeliveryDate.Day, 23, 59, 59); StatusResponse response = _factory.Export(ref wsPO, ref wsPOD, /*ref wsPOR,*/ model, listStore, listCompanyId); if (!response.Status) { ModelState.AddModelError("", response.MsgError); return(View(model)); } ViewBag.wb = wb; Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Charset = System.Text.UTF8Encoding.UTF8.WebName; Response.ContentEncoding = System.Text.UTF8Encoding.UTF8; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx", CommonHelper.GetExportFileName("PurchaseOrder").Replace(" ", "_"))); using (var memoryStream = new System.IO.MemoryStream()) { wb.SaveAs(memoryStream); memoryStream.WriteTo(HttpContext.Response.OutputStream); memoryStream.Close(); } HttpContext.Response.End(); return(RedirectToAction("Export")); } catch (Exception e) { _logger.Error("PurchaseOrderExport: " + e); ModelState.AddModelError("ListStores", CurrentUser.GetLanguageTextFromKey("Export file have error")); return(View(model)); } }
public PartialViewResult View(string id) { PurchaseOrderModels model = GetDetail(id); model.Supplier = new SupplierModels(); model.Supplier = _Supplierfactory.GetDetail(model.SupplierId); model.Symbol = GetSymbol(model.StoreID); model.Store = new SStoreModels(); model.Store = _Storefactory.GetListStores(null, model.StoreID)[0]; if (model.TaxType == (int)Commons.ETax.Inclusive) { model.TaxAmountInclusive = string.Format("{0} {1:N2}", model.Symbol, (model.SubTotal - (model.SubTotal / (1 + (model.TaxValue / 100))))); } //============ return(PartialView("_View", model)); }
public PurchaseOrderModels GetPurchaseOrder(long?paramId) { PurchaseOrderModels po = new PurchaseOrderModels(); try { using (var db = new Entities()) { po = (from b in db.PurchaseOrders join c in db.AddressBooks on b.SupplierAddressId equals c.AddressId join d in db.AddressBooks on b.CustomerAddressId equals d.AddressId where b.Id == paramId select new PurchaseOrderModels { Id = b.Id, POType = b.POType, PaymentTerms = b.PaymentTerms, GrossAmount = b.GrossAmount, Remark = b.Remark, GLDate = b.GLDate, AccountNumber = b.AccountNumber, SupplierAddressId = b.SupplierAddressId, SupplierName = c.Name, CustomerAddressId = b.CustomerAddressId, CustomerName = d.Name, ContractId = b.ContractId, POQuoteId = b.POQuoteId, Description = b.Description, ItemNumber = b.ItemNumber, PONumber = b.PONumber, Unit = b.Unit, Quantity = b.Quantity }).Single <PurchaseOrderModels>(); } } catch (Exception ex) { } return(po); }
public ActionResult Delete(PurchaseOrderModels model) { try { string msg = ""; var result = _factory.Delete(model.Id, ref msg); if (!result) { ModelState.AddModelError("PONumber", msg); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(PartialView("_Delete", model)); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception ex) { _logger.Error("PurchaseOrderDelete: " + ex); ModelState.AddModelError("PONumber", CurrentUser.GetLanguageTextFromKey("Have an error when you delete a Purchase Order")); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(PartialView("_Delete", model)); } }
//[Authorize] // GET: api/PurchaseOrder/5 public PurchaseOrderModels Get(int id) { PurchaseOrderModels purchaseOrder = _PurchaseOrderRepository.GetPurchaseOrder(id); return(purchaseOrder); }
public ActionResult Export() { PurchaseOrderModels model = new PurchaseOrderModels(); return(View(model)); }
public PartialViewResult Delete(string id) { PurchaseOrderModels model = GetDetail(id); return(PartialView("_Delete", model)); }
public PurchaseOrderModels GetDetail(string id) { try { PurchaseOrderModels model = _factory.GetDetail(id, listCompanyId); //model.GetListSupplierFromCompnay(listCompanyId); var ListSupplierInfo = GetListSuppliers(model.StoreID); var ListSupplier = new SelectList(ListSupplierInfo, "Id", "Name"); model.ListSupplier = ListSupplier.ToList(); //-------------- bool IsIntegrate = false; var objStore = CurrentUser.listStore.Where(x => x.ID.Equals(model.StoreID)).FirstOrDefault(); if (objStore != null && !string.IsNullOrEmpty(objStore.ThirdParty.ApiURL)) { IsIntegrate = objStore.ThirdParty.IsIntegrate; } List <SelectListItem> listItemTax = new List <SelectListItem>(); if (IsIntegrate) { model.StoreIntegrate = true; //--------------------- var lstTaxV2 = _factoryTax.GetListTaxV2(model.StoreID, null, CurrentUser.ListOrganizationId); lstTaxV2 = lstTaxV2.Where(x => x.IsActive).ToList(); string Symbol = GetSymbol(model.StoreID); List <POTaxModels> listItem = new List <POTaxModels>(); int OffSet = 0; lstTaxV2.ForEach(x => { var amount = model.ListItem.Where(z => z.TaxId.Equals(x.ID)).Sum(z => z.TaxAmount); listItem.Add(new POTaxModels { ID = x.ID, Name = x.Name, Percent = x.Percent, TaxType = x.TaxType, OffSet = OffSet++, Symbol = Symbol, sTaxType = (x.TaxType == (int)Commons.ETax.Inclusive) ? "Inclusive" : "Exclusive", Amount = Math.Round(amount, 2), IsShow = amount > 0 ? true : false }); //----for Dropdownlist listItemTax.Add(new SelectListItem { Text = x.Name, Value = x.ID, }); }); model.ListItemTax = listItem; model.TaxAmount = Math.Round(model.ListItemTax.Sum(z => z.Amount), 2); } //-------- model.ListItem.ForEach(x => { if (!string.IsNullOrEmpty(x.TaxId)) { var objTax = model.ListItemTax.Where(z => z.ID.Equals(x.TaxId)).FirstOrDefault(); x.TaxName = objTax != null ? objTax.Name : string.Empty; x.TaxType = objTax != null ? objTax.TaxType : 0; } //----- x.ListTax = listItemTax; x.IsShowTax = IsIntegrate; }); return(model); } catch (Exception ex) { _logger.Error("PurchaseOrderDetail: " + ex); return(null); } }
public ActionResult Create(PurchaseOrderModels model) { try { if (!model.StoreIntegrate) { if (model.TaxType == (int)Commons.ETax.AddOn) { if (model.TaxValue < 0 || model.TaxValue > 100) { ModelState.AddModelError("TaxValue", CurrentUser.GetLanguageTextFromKey("Please enter a value greater than or equal to 0 and maximun 100%")); } } } if (model.DeliveryDate.Date < model.PODate.Date) { ModelState.AddModelError("DeliveryDate", CurrentUser.GetLanguageTextFromKey("Delivery date cannot be sooner than PO date")); } if (!ModelState.IsValid) { //model.GetListSupplierFromCompnay(listCompanyId); var ListSupplierInfo = GetListSuppliers(model.StoreID); var ListSupplier = new SelectList(ListSupplierInfo, "Id", "Name"); model.ListSupplier = ListSupplier.ToList(); return(View(model)); } //==================== string msg = ""; model.CreatedBy = CurrentUser.Email; model.ModifierBy = CurrentUser.Email; model.CreatedDate = DateTime.Now; model.ModifierDate = DateTime.Now; model.POStatus = (int)Commons.EPOStatus.Open; model.IsActived = true; //===== model.ListItem = model.ListItem.Where(x => x.Delete != (int)Commons.EStatus.Deleted).ToList(); //--------- //var objStore = lstStore.Where(ww => ww.Value == model.StoreID).FirstOrDefault(); var objStore = lstStore.Where(ww => ww.Id == model.StoreID).FirstOrDefault(); if (objStore != null) { //model.StoreName = objStore.Text; model.StoreName = objStore.Name; } //----- bool result = _factory.Insert(model, ref msg); if (result) { return(RedirectToAction("Index")); } else { //model.GetListSupplierFromCompnay(listCompanyId); var ListSupplierInfo = GetListSuppliers(model.StoreID); var ListSupplier = new SelectList(ListSupplierInfo, "Id", "Name"); model.ListSupplier = ListSupplier.ToList(); ModelState.AddModelError("StoreID", msg); return(View(model)); } } catch (Exception ex) { _logger.Error("PurchaseOrderCreate: " + ex); return(new HttpStatusCodeResult(400, ex.Message)); } }
public ActionResult AddIngredient(POIngredientViewModels data) { PurchaseOrderModels model = new PurchaseOrderModels(); model.ListItem = new List <POIngredient>(); //--------update bool IsIntegrate = false; bool _IsShowTax = false; var objStore = CurrentUser.listStore.Where(x => x.ID.Equals(data.StoreId)).FirstOrDefault(); if (objStore != null) { var objThirdParty = objStore.ThirdParty; if (objThirdParty != null && !string.IsNullOrEmpty(objThirdParty.ApiURL)) { IsIntegrate = objThirdParty.IsIntegrate; } } List <SelectListItem> listItemTax = new List <SelectListItem>(); if (IsIntegrate) { _IsShowTax = true; var lstTaxV2 = _factoryTax.GetListTaxV2(data.StoreId, null, CurrentUser.ListOrganizationId); lstTaxV2 = lstTaxV2.Where(x => x.IsActive).ToList(); if (lstTaxV2 != null) { foreach (Shared.Models.Settings.TaxModels tax in lstTaxV2) { listItemTax.Add(new SelectListItem { Text = tax.Name, Value = tax.ID, }); } } } //--------updated foreach (var item in data.ListItemView) { model.ListItem.Add(new POIngredient { Id = item.Id, // Add New IngredientId = item.IngredientId, IngredientName = item.IngredientName, IngredientCode = item.IngredientCode, Description = item.Description, IsSelect = item.IsSelect, Qty = item.Qty, UnitPrice = item.UnitPrice, Amount = item.Amount, BaseUOM = item.BaseUOM, IngReceivingQty = item.IngReceivingQty, Delete = item.Delete, //--updated TaxId = item.TaxId, TaxName = item.TaxName, TaxType = item.TaxType, TaxAmount = item.TaxAmount, TaxPercent = item.TaxPercent, ListTax = listItemTax, IsShowTax = _IsShowTax }); } return(PartialView("_ListItemNew", model)); }
public ActionResult CreateReturnNote(ReceiptNoteModels model) { try { List <PurchaseOrderModels> _ListPurchaseOrder = new List <PurchaseOrderModels>(); //_ListPurchaseOrder.InsertRange(0, model.ListPurchaseOrder); foreach (var item in model.ListPurchaseOrder) { var obj = new PurchaseOrderModels(); obj.Additional = item.Additional; obj.AdditionalReason = item.AdditionalReason; obj.ColorAlert = item.ColorAlert; obj.CreatedBy = item.CreatedBy; obj.CreatedDate = item.CreatedDate; obj.Delete = item.Delete; obj.DeliveryDate = item.DeliveryDate; obj.Id = item.Id; obj.IsActived = item.IsActived; obj.ListItem = item.ListItem; obj.ListReceiptPO = item.ListReceiptPO; obj.ListStores = item.ListStores; obj.ListSupplier = item.ListSupplier; obj.ListTaxType = item.ListTaxType; obj.ModifierBy = item.ModifierBy; obj.ModifierDate = item.ModifierDate; obj.Note = item.Note; obj.PODate = item.PODate; obj.PONumber = item.PONumber; obj.POStatus = item.POStatus; obj.Store = item.Store; obj.StoreID = item.StoreID; obj.StoreName = item.StoreName; obj.SubTotal = item.SubTotal; obj.Supplier = item.Supplier; obj.SupplierId = item.SupplierId; obj.SupplierName = item.SupplierName; obj.Symbol = item.Symbol; obj.TaxAmount = item.TaxAmount; obj.TaxType = item.TaxType; obj.TaxValue = item.TaxValue; obj.Total = item.Total; _ListPurchaseOrder.Add(obj); } model.CreatedBy = CurrentUser.UserName; model.UpdatedBy = CurrentUser.UserName; model.ReceiptBy = CurrentUser.UserName; model.CreatedDate = DateTime.Now; model.UpdatedDate = DateTime.Now; model.ReceiptDate = DateTime.Now; model.ListPurchaseOrder.ForEach(x => { x.ListItem = x.ListItem.Where(z => z.ReturnQty > 0).ToList(); }); //========== ReturnNoteModels RTmodel = new ReturnNoteModels() { ReceiptNoteId = model.Id, CreatedBy = CurrentUser.UserName, CreatedDate = DateTime.Now, ModifierBy = CurrentUser.UserName, ModifierDate = DateTime.Now, IsActived = true }; RTmodel.ListPurchaseOrder = model.ListPurchaseOrder.Where(x => x.ListItem.Count > 0).ToList(); bool result = false; string msg = ""; double qtyCurrentStock = 0; bool isCheck = true; string ingredientName = string.Empty; if (RTmodel.ListPurchaseOrder.Count > 0) { foreach (var poDetail in RTmodel.ListPurchaseOrder) { foreach (var item in poDetail.ListItem) { if (item.ReturnQty < 0) { ModelState.AddModelError("error_msg" + item.Id, CurrentUser.GetLanguageTextFromKey("Please, can not input negative number")); break; } if (item.ReturnQty > item.ReceivingQty) { ModelState.AddModelError("error_msg" + item.Id, CurrentUser.GetLanguageTextFromKey("Can not return more than receiving quantity")); break; } ingredientName = string.Empty; qtyCurrentStock = 0; isCheck = _InventoryFactory.CheckStockForReturn(model.StoreId, item.IngredientId , item.ReturnQty, item.BaseQty, ref qtyCurrentStock, ref ingredientName); if (!isCheck) { ModelState.AddModelError("error_msg" + item.Id, string.Format("[{0}] " + CurrentUser.GetLanguageTextFromKey("is not enough stock to return!"), ingredientName)); break; } } } if (!ModelState.IsValid) { model.ListPurchaseOrder = _ListPurchaseOrder; //return PartialView("_CreateReturnNote", model); return(View("_CreateReturnNote", model)); } result = _RTFactory.Insert(RTmodel, model.StoreId, ref msg); } else { result = true; } //=== if (result) { return(RedirectToAction("Index")); } else { ModelState.AddModelError("StoreId", msg); return(View("_CreateReturnNote", model)); } } catch (Exception ex) { NSLog.Logger.Error("ReturnNote_Create: ", ex); return(new HttpStatusCodeResult(400, ex.Message)); } }