public string PullAndSaveToOGAPS(string ponum) { try { using (var client = new HttpClient()) { string url = ConfigurationManager.AppSettings.Get("webService:URL") + "maximo/oslc/os/KA_MXPO_REC?lean=1&oslc.select=*&oslc.where=ponum=" + "\"" + ponum + "\" and status in [\"APPR\",\"CLOSE\",\"INPRG\",\"WAPPR\"]"; client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Add("MAXAUTH", "Q09MX1NWQ19Lb2ZheF9PQ1JJbWFnZXM6SzA1QFgxbnQzNnQxb24="); HttpResponseMessage response = client.GetAsync("").Result; this.LogoutMaximo(); client.Dispose(); if (response.IsSuccessStatusCode) { var jsonString = response.Content.ReadAsStringAsync(); jsonString.Wait(); JToken root = JObject.Parse(jsonString.Result)["member"]; if (root.Count() == 0) { return("not found"); } poheader = JsonConvert.DeserializeObject <POHeader>(root[0].ToString()); using (PullPOHelper pohelper = new PullPOHelper(poheader)) { return(pohelper.StoreToDB()); } } else { return(response.StatusCode + " : " + response.ReasonPhrase); } } } catch (Exception ex) { return("failed :" + ex.Message); } }
private void UpdatePo(POHeader poHeader) { try { var connString = ConfigurationManager.ConnectionStrings["ADONET35"].ToString(); using (var oConnection = new PsqlConnection(connString)) { oConnection.Open(); var insertCommand = CreateInsertStatement(oConnection, poHeader); insertCommand.ExecuteNonQuery(); oConnection.Close(); } } catch (Exception ex) { throw ex; } }
public ActionResult DisplayPO(FormCollection data) { Session["POListPage"] = "2"; string poNumber = data["PONumber"]; Session["poNumber"] = poNumber; using (SSISdbEntities m = new SSISdbEntities()) { List <POFullDetail> poFullDetailList = m.POFullDetails.Where(x => x.PONumber == poNumber).ToList(); POHeader ph = m.POHeaders.Where(x => x.PONumber == poNumber).FirstOrDefault(); Session["PORemarks"] = ph.Remarks; Session["POItems"] = poFullDetailList; Session["poStatus"] = m.POHeaders.Where(x => x.PONumber == poNumber).Select(x => x.Status).FirstOrDefault(); } return(View()); }
public POHeaderModel Create(POHeader pOHeader) { if (pOHeader == null) { return(null); } return(new POHeaderModel() { Company = pOHeader.Company, PONum = pOHeader.PONum, DONum = pOHeader.DONum, SuppNum = pOHeader.SuppNum, SuppId = pOHeader.SuppId, SuppName = pOHeader.SuppName, CartonLabel = pOHeader.CartonLabel, PODetails = pOHeader.PODetails?.Select(c => Create(c)) }); }
private PsqlCommand CreateInsertStatement(PsqlConnection oConnection, POHeader poHeader) { var commandText = "INSERT INTO PO_Header (po_no, NewJobNumber, activity, vendor_id, po_type, release_date, cancelled_date, payment_amount," + "subtotal, tax, total, egm_amount, vpo_yes_no, UserID, LastModifiedDate, Community, Product, Building, Unit," + "taxable_amount, job_no, eSubmittalDate, ApprovePaymentDate, Invoice, TaxRate, eMeasurementPO, SapphirePONumber, SapphireObjID," + "SapphireObjRID)" + "VALUES (@po_no,@NewJobNumber, @activity, @vendor_id, @po_type, @release_date, @cancelled_date, @payment_amount,@subtotal, @tax," + "@total, @egm_amount,@vpo_yes_no, @UserID, @LastModifiedDate, @Community,@Product, @Building,@Unit, @taxable_amount," + "@job_no, @eSubmittalDate, @ApprovePaymentDate, @Invoice,@TaxRate, @eMeasurementPO, @SapphirePONumber, @SapphireObjID, @SapphireObjRID)"; var command = new PsqlCommand { Connection = oConnection, CommandText = commandText }; CreateCommandParameters(command, poHeader); return(command); }
public ActionResult ExportPrint(int Id = 0, bool isView = true, string listPO = "") { using (var dbConn = Helpers.OrmliteConnection.openConn()) { ViewBag.listitem = dbConn.Select <PODetail>(@" SELECT detail.*, pr.ten_san_pham AS ten_san_pham, d.ten_chi_nhanh as ten_don_vi,d.dia_chi as dia_chi_dv, detail.don_gia * detail.so_luong as thanh_tien, std.ngay_tao as ngay_to_trinh, p.gia_tri as ten_don_vi_tinh,detail.ma_phieu_header,std.ma_pyc_header as ma_phieu_PR FROM PODetail detail LEFT JOIN dbo.Product pr ON detail.ma_san_pham=pr.ma_san_pham LEFT JOIN Parameters p ON pr.ma_don_vi_tinh = p.ma_tham_so LEFT JOIN Branch d ON detail.ma_don_vi = d.ma_don_vi INNER JOIN StatementDetail std ON detail.id_StatementDetail = std.id WHERE detail.ma_phieu_header={0} order by d.ten_chi_nhanh " .Params(listPO)); //string[] listSP = dbConn.FirstOrDefault<PODetail>(@"select p.ma_san_pham // from PODetail p // where p.ma_phieu_header=".Params(listPO)); //foreach (var item in listSP) //{ // ViewBag.listSTM = dbConn.Select<PODetail>(@"select DISTINCT po.ma_to_trinh // from PODetail po, StatementDetail st // where st.ma_phieu_header=po.ma_to_trinh and st.ma_san_pham={0}".Params(item.ma_san_pham)); //} //POHeader itemHeader = dbConn.FirstOrDefault<POHeader>(s => s.ma_phieu == listPO); POHeader itemHeader = dbConn.SqlList <POHeader>("EXEC ExportPrintPOHeader @WhereCondition", new { WhereCondition = " AND ma_phieu = {0}".Params(listPO) }).FirstOrDefault(); ViewBag.ItemHeader = itemHeader; ViewBag.Vendor = dbConn.FirstOrDefault <Vendor>(s => s.nha_cung_cap_id == itemHeader.ma_nha_cung_cap); var subtemplate = "_template_product_table_po"; ViewBag.subWiewName = subtemplate; string viewName = "_template_export_po"; string html = RenderPartialViewToString(viewName); return(View(viewName)); } }
public async Task <IActionResult> UpdatePO([FromBody] POHeader header) { if (ModelState.IsValid) { try { await PoHeader.UpdatePOHeader(header); return(Ok()); } catch (Exception ex) { if (ex.GetType().FullName == "Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException") { return(NotFound()); } return(BadRequest()); } } return(BadRequest()); }
public static POHeaderDTO MapFromDatabaseEntity(POHeader projectPOHeader) { if (projectPOHeader == null) { return(null); } return(new POHeaderDTO { Id = projectPOHeader.Id, Supplier = projectPOHeader.Supplier, PurchaseOrderNumber = projectPOHeader.PurchaseOrderNumber, ShippingAddress = projectPOHeader.ShippingAddress, OrderDate = projectPOHeader.OrderDate, OrderTotal = projectPOHeader.OrderTotal, Currency = projectPOHeader.Currency, AccountingTotalCurrency = projectPOHeader.AccountingTotalCurrency, ProjectId = projectPOHeader.ProjectId, POLineItems = projectPOHeader.POLineItems?.Select(POLineItemDTO.MapFromDatabaseEntity).ToList() ?? new List <POLineItemDTO>(), }); }
public ActionResult Update(POHeader data, List <PODetail> details) { using (var dbConn = Helpers.OrmliteConnection.openConn()) { try { if (accessDetail.sua) { var exist = dbConn.SingleOrDefault <POHeader>("id={0}", data.id); //exist.ten_phieu = data.ten_phieu; exist.nguoi_cap_nhat = currentUser.ma_nguoi_dung; exist.ngay_cap_nhat = DateTime.Now; dbConn.Update(exist); foreach (var item in details) { var detail = dbConn.FirstOrDefault <PODetail>(s => s.id == item.id); detail.thong_so_ky_thuat = item.thong_so_ky_thuat; detail.muc_dich_su_dung = item.muc_dich_su_dung; detail.thong_tin_noi_bo = item.thong_tin_noi_bo; detail.nguoi_cap_nhat = currentUser.ma_nguoi_dung; detail.ngay_cap_nhat = DateTime.Now; dbConn.Update(detail); } } else { return(Json(new { success = false, error = "Bạn không có quyền sửa dữ liệu" })); } return(Json(new { success = true, id = data.id })); } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } } }
public RedirectToRouteResult AddToPO(string[] arr1, string[] arr2, string[] arrSupplier) { try { int enteredQty = 0; if (arr1 != null) { for (int i = 0; i < arr1.Length; i++) { enteredQty += Convert.ToInt32(arr1[i]); } } if (enteredQty > 0) { List <ReorderList> poDetailsList = (List <ReorderList>)Session["ReorderList"]; List <Supplier> supplierList = new List <Supplier>(); List <Item> itemAdded = new List <Item>(); using (SSISdbEntities m = new SSISdbEntities()) { // Checking for number of suppliers to Iterate & later used for creating no. of PO for (int i = 0; i < arrSupplier.Length; i++) { string supCode = arrSupplier[i]; Supplier supplier = m.Suppliers.Where(x => x.CompanyName == supCode).FirstOrDefault(); if (!supplierList.Contains(supplier)) { supplierList.Add(supplier); } } // Change Item Supplier in PODetails for retrieving in list and adding into database later foreach (ReorderList p in poDetailsList) { if (arr2.Contains(p.Description)) { int index = arr2.ToList().FindIndex(x => x == p.Description); string coy = arrSupplier[index]; Supplier sup = m.Suppliers.Where(x => x.CompanyName == coy).FirstOrDefault(); p.s1 = sup.CompanyName; } } // Each Supplier iterates once such that only 1 PO is created for each of them foreach (Supplier s in supplierList) { // Create new PO based on supplier int count = m.POHeaders.Count() + 1; string poId = CommonLogic.SerialNo(count, "PO"); POHeader newPOHeader = new POHeader(); newPOHeader.PONumber = poId; newPOHeader.Date = DateTime.Now; newPOHeader.SupplierCode = s.SupplierCode; newPOHeader.ContactName = s.ContactName; newPOHeader.DeliverTo = "Logic University"; newPOHeader.EmployeeID = (string)Session["LoginEmployeeID"]; newPOHeader.Remarks = ""; newPOHeader.Status = "Open"; newPOHeader.TransactionType = "PO"; m.POHeaders.Add(newPOHeader); m.SaveChanges(); // Loop through PODetails to add items based on selected supplier suppliers foreach (ReorderList pod in poDetailsList) { // Only add if the item is belonging to the supplier / PO string supName = pod.s1; Supplier supplier = m.Suppliers.Where(x => x.CompanyName == supName).FirstOrDefault(); if (supplier == s) { // Only add if the item has not been added Item i = m.Items.Where(x => x.ItemCode == pod.ItemCode).FirstOrDefault(); if (!itemAdded.Contains(i)) { PODetail poDetailToAdd = new PODetail(); float itemUnitPrice = m.SupplierPriceLists.Where(x => x.SupplierCode == s.SupplierCode && x.ItemCode == pod.ItemCode).Select(y => y.UnitCost).FirstOrDefault(); poDetailToAdd.PONumber = poId; poDetailToAdd.ItemCode = pod.ItemCode; int index = arr2.ToList().FindIndex(x => x == pod.Description); if (index != -1) { int qty = Convert.ToInt32(arr1[index]); poDetailToAdd.QuantityOrdered = qty; poDetailToAdd.QuantityBackOrdered = qty; poDetailToAdd.QuantityDelivered = 0; poDetailToAdd.UnitCost = itemUnitPrice; poDetailToAdd.CancelledBackOrdered = 0; m.PODetails.Add(poDetailToAdd); } m.SaveChanges(); itemAdded.Add(i); } } } } } } else { TempData["ErrorMsg"] = "You have not included any quantity"; } Session["newPOList"] = new List <PODetail>(); } catch (Exception e) { Debug.WriteLine(e.Message); TempData["ErrorMsg"] = "Please key in a valid quantity"; } return(RedirectToAction("Inventory", "Store")); }
public POHeader Add(POHeader poHeader) { return(_context.PurchaseOrderHeaders.Add(poHeader).Entity); }
public Boolean SaveData() { try { if (gvPODetail.IsEditing) { gvPODetail.CloseEditor(); } if (gvPODetail.FocusedRowModified) { gvPODetail.UpdateCurrentRow(); } Cursor.Current = Cursors.WaitCursor; intPOHeaderID = Convert.ToInt16(txtPOHeaderID.Text); int intCustomerID; string strCustomerCode = lueCustomer.EditValue.ToString(); string strPOType = lueSearchPOType.EditValue.ToString(); string strPONumber = txtPONumber.Text.Trim(); if (string.IsNullOrEmpty(strPONumber)) { XtraMessageBox.Show("Please, input P/O Number first.", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPONumber.Focus(); return(false); } DateTime dtOrderDate = Convert.ToDateTime(deOrderDate.EditValue.ToString()); //string strOrderDate = deOrderDate.EditValue.ToString(); //DateTime dtOrderDate; //if (DateTime.TryParseExact(strOrderDate, "M/d/yyyy", null, System.Globalization.DateTimeStyles.None, out dtOrderDate) == false) //{ // XtraMessageBox.Show("Order Date is not valid", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); // deOrderDate.Focus(); // return false; //} Boolean blnStatus = Convert.ToBoolean(lueStatus.Properties.GetKeyValueByDisplayText(lueStatus.Text).ToString()); string strRemark = txtRemark.Text; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted })) { using (eSolutionDataContext db = new eSolutionDataContext()) { DateTime dtServerDate = Convert.ToDateTime(db.fn_ServerDateTime().ToString()); var qryPOHeader = (from poh in db.POHeaders from cst in db.Customers where cst.CustomerID == poh.CustomerID && cst.CustomerCode == strCustomerCode && poh.PONumber == strPONumber select poh).FirstOrDefault(); if (qryPOHeader == null) { // new add row var qryCount = (from poh in db.POHeaders from cst in db.Customers where cst.CustomerID == poh.CustomerID && cst.CustomerCode == strCustomerCode && poh.PONumber == strPONumber select poh).Count(); if (qryCount > 0) { MessageBox.Show("Already regist PO Number." + Environment.NewLine + "Please, check the PO Number!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtPONumber.Focus(); return(false); } POHeader poheader = new POHeader(); intCustomerID = (from obj in db.Customers where obj.CustomerCode == strCustomerCode select obj.CustomerID).FirstOrDefault(); poheader.CustomerID = intCustomerID; poheader.PONumber = strPONumber; poheader.POType = strPOType; poheader.OrderDate = dtOrderDate; poheader.Status = blnStatus; if (blnStatus == true) { poheader.ClosedDate = dtServerDate; } poheader.CreateDate = dtServerDate; poheader.CreateCompName = Environment.MachineName; poheader.ModifiedDate = dtServerDate; poheader.ModifiedCompName = Environment.MachineName; db.POHeaders.InsertOnSubmit(poheader); } else { intCustomerID = (from obj in db.Customers where obj.CustomerCode == strCustomerCode select obj.CustomerID).FirstOrDefault(); qryPOHeader.CustomerID = intCustomerID; qryPOHeader.POType = strPOType; qryPOHeader.PONumber = strPONumber; qryPOHeader.OrderDate = dtOrderDate; qryPOHeader.Status = blnStatus; qryPOHeader.Remark = strRemark; qryPOHeader.ModifiedCompName = Environment.MachineName; qryPOHeader.ModifiedDate = dtServerDate; } db.SubmitChanges(); intPOHeaderID = (from obj in db.POHeaders where obj.CustomerID == intCustomerID && obj.PONumber == strPONumber select obj.POHeaderID).FirstOrDefault(); // PO Detail delete for (int i = 0; i < gvPODetail.DataRowCount; i++) { int intPODetailID = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "PODetailID").ToString()); int intPOLineNumber; try { intPOLineNumber = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "POLineNumber").ToString()); } catch { intPOLineNumber = 1; } string strItemNumber = gvPODetail.GetRowCellValue(i, "ItemNumber").ToString(); var qryItem = (from itm in db.ItemMasters from itd in db.ItemByCustomers where itd.ItemID == itm.ItemID && itd.CustomerID == intCustomerID && itd.ItemNumber == strItemNumber && itd.ItemType.Contains("R") select new { ItemID = itm.ItemID, ItemCode = itm.ItemCode } ).FirstOrDefault(); int intItemID = qryItem.ItemID; string strItemCode = qryItem.ItemCode; DateTime?dtDueDate; try { dtDueDate = Convert.ToDateTime(gvPODetail.GetRowCellValue(i, "DueDate").ToString()); } catch { dtDueDate = null; } int intReceivingQty = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "ReceiveQty").ToString()); //int intShipGoodQty = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "ShipGoodQty").ToString()); //int intShipFunctionFailQty = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "ShipFunctionFailQty").ToString()); //int intShipDIPQty = Convert.ToInt16(gvPODetail.GetRowCellValue(i, "ShipDIPQty").ToString()); string strStatus = gvPODetail.GetRowCellValue(i, "Status").ToString(); Boolean blnStatusDetail = Convert.ToBoolean(gvPODetail.GetRowCellValue(i, "Status").ToString()); var qryDetail = (from obj in db.PODetails where obj.PODetailID == intPODetailID select obj).FirstOrDefault(); if (qryDetail == null) { PODetail dtl = new PODetail(); dtl.POHeaderID = intPOHeaderID; dtl.POLineNumber = intPOLineNumber; dtl.PONumber = strPONumber; dtl.ItemID = intItemID; dtl.ItemCode = strItemCode; dtl.ItemNumber = strItemNumber; dtl.ReceiveQty = intReceivingQty; dtl.DueDate = dtDueDate; //dtl.ShipGoodQty = intShipGoodQty; //dtl.ShipDIPQty = intShipDIPQty; //dtl.ShipFunctionFailQty = intShipFunctionFailQty; //dtl.ShipDIPQty = intShipDIPQty; dtl.Status = blnStatusDetail; dtl.CreatedDate = dtServerDate; dtl.CreatedHostName = Environment.MachineName; db.PODetails.InsertOnSubmit(dtl); } else { if (!(qryDetail.POHeaderID == intPOHeaderID && qryDetail.POLineNumber == intPOLineNumber && qryDetail.PONumber == strPONumber && qryDetail.ItemID == intItemID && qryDetail.ItemCode == strItemCode && qryDetail.ItemNumber == strItemNumber && qryDetail.ReceiveQty == intReceivingQty //&& qryDetail.ShipGoodQty == intShipGoodQty //&& qryDetail.ShipFunctionFailQty == intShipFunctionFailQty //&& qryDetail.ShipDIPQty == intShipDIPQty && qryDetail.DueDate == dtDueDate && qryDetail.Status == blnStatusDetail)) { qryDetail.POHeaderID = intPOHeaderID; qryDetail.PONumber = strPONumber; qryDetail.POLineNumber = intPOLineNumber; qryDetail.ItemID = intItemID; qryDetail.ItemCode = strItemCode; qryDetail.ItemNumber = strItemNumber; qryDetail.ReceiveQty = intReceivingQty; qryDetail.DueDate = dtDueDate; //qryDetail.ShipGoodQty = intShipGoodQty; //qryDetail.ShipDIPQty = intShipDIPQty; //qryDetail.ShipFunctionFailQty = intShipFunctionFailQty; //qryDetail.ShipDIPQty = intShipDIPQty; qryDetail.Status = blnStatus; qryDetail.CreatedDate = dtServerDate; qryDetail.CreatedHostName = Environment.MachineName; } } db.SubmitChanges(); if (strEntryStatus == "A") { txtPOHeaderID.Text = intPOHeaderID.ToString(); strEntryStatus = "E"; } } } scope.Complete(); } MessageBox.Show("Completed Saved!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Exception Error!" + Environment.NewLine + ex.Message.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { SearchData(); Cursor.Current = Cursors.Default; } return(false); }
public RedirectToRouteResult SavePO(string[] arrQty, string[] arrSupplier, string taData) { // To ensure no empty Entries try { int enteredQty = 0; if (arrQty.Count() > 0) { for (int i = 0; i < arrQty.Length; i++) { enteredQty += Convert.ToInt32(arrQty[i]); } } if (enteredQty > 0) { List <POFullDetail> poDetailsList = (List <POFullDetail>)Session["newPOList"]; List <Supplier> supplierList = new List <Supplier>(); List <Item> itemAdded = new List <Item>(); int arrayCount = 0; using (SSISdbEntities m = new SSISdbEntities()) { // Checking for number of suppliers to Iterate & later used for creating no. of PO for (int i = 0; i < arrSupplier.Length; i++) { string supCode = arrSupplier[i]; Supplier supplier = m.Suppliers.Where(x => x.SupplierCode == supCode).FirstOrDefault(); if (!supplierList.Contains(supplier)) { supplierList.Add(supplier); } } // Change Item Supplier in PODetails for retrieving in list and adding into database later foreach (POFullDetail p in poDetailsList) { string coy = arrSupplier[arrayCount]; Supplier sup = m.Suppliers.Where(x => x.SupplierCode == coy).FirstOrDefault(); p.CompanyName = sup.CompanyName; arrayCount++; } // Each Supplier iterates once such that only 1 PO is created for each of them foreach (Supplier s in supplierList) { // Create new PO based on supplier int count = m.POHeaders.Count() + 1; string poId = CommonLogic.SerialNo(count, "PO"); POHeader newPOHeader = new POHeader(); newPOHeader.PONumber = poId; newPOHeader.Date = DateTime.Now; newPOHeader.SupplierCode = s.SupplierCode; newPOHeader.ContactName = s.ContactName; newPOHeader.DeliverTo = "Logic University"; newPOHeader.EmployeeID = (string)Session["LoginEmployeeID"]; newPOHeader.Remarks = taData; newPOHeader.Status = "Open"; newPOHeader.TransactionType = "PO"; m.POHeaders.Add(newPOHeader); m.SaveChanges(); // Loop through PODetails to add items based on selected supplier suppliers foreach (POFullDetail pod in poDetailsList) { // Only add if the item is belonging to the supplier / PO string supCode = m.Suppliers.Where(x => x.CompanyName == pod.CompanyName).Select(x => x.SupplierCode).FirstOrDefault(); Supplier supplier = m.Suppliers.Where(x => x.SupplierCode == supCode).FirstOrDefault(); if (supplier == s) { // Only add if the item has not been added PODetail poDetailToAdd = new PODetail(); float itemUnitPrice = m.SupplierPriceLists.Where(x => x.SupplierCode == s.SupplierCode && x.ItemCode == pod.ItemCode).Select(y => y.UnitCost).FirstOrDefault(); poDetailToAdd.PONumber = poId; poDetailToAdd.ItemCode = pod.ItemCode; int qty = Convert.ToInt32(arrQty[poDetailsList.IndexOf(pod)]); poDetailToAdd.QuantityOrdered = qty; poDetailToAdd.QuantityBackOrdered = qty; poDetailToAdd.QuantityDelivered = 0; poDetailToAdd.UnitCost = itemUnitPrice; poDetailToAdd.CancelledBackOrdered = 0; m.PODetails.Add(poDetailToAdd); m.SaveChanges(); Item item = new Item(); item = m.Items.Where(x => x.ItemCode == pod.ItemCode && pod.CompanyName == supplier.CompanyName).FirstOrDefault(); itemAdded.Add(item); } } } } } } catch (FormatException fe) { Debug.WriteLine(fe.Message); }catch (Exception e) { Debug.WriteLine(e.Message); } //add to list meant for already added items List <String> tempList = (List <String>)Session["tempList"]; tempList.Clear(); Session["tempList"] = tempList; Session["newPOList"] = new List <POFullDetail>(); Session["POListPage"] = "1"; return(RedirectToAction("POList", "StorePurchase")); }
public ActionResult CreateUpdate(POHeader data, List <PODetail> details) { using (var dbConn = Helpers.OrmliteConnection.openConn()) { try { int id = 0; if (accessDetail.them) { string ma_phieu = ""; var loai = "PO"; //var ma_don_vi = currentUser.ma_don_vi; var yyMMdd = DateTime.Now.ToString("yyMMdd"); var existLast = dbConn.SingleOrDefault <POHeader>("SELECT TOP 1 * FROM POHeader ORDER BY id DESC"); var nextNo = 0; var yearNow = int.Parse(DateTime.Now.Year.ToString().Substring(2, 2)); if (existLast != null) { nextNo = int.Parse(existLast.ma_phieu.Substring(8, existLast.ma_phieu.Length - 8)) + 1; var yearOld = int.Parse(existLast.ma_phieu.Substring(2, 2)); if (yearOld == yearNow) { ma_phieu = loai + yyMMdd + String.Format("{0:00000}", nextNo); } else { ma_phieu = loai + yyMMdd + "00001"; } } else { ma_phieu = loai + yyMMdd + "00001"; } data.ma_phieu = ma_phieu; //data.ngay_tao_yeu_cau = !string.IsNullOrEmpty(Request["ngay_tao_yeu_cau"]) ? DateTime.Parse(DateTime.ParseExact(Request["ngay_tao_yeu_cau"], "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")) : DateTime.Parse("1900-01-01"); //data.ngay_cap_thiet_bi = !string.IsNullOrEmpty(Request["ngay_cap_thiet_bi"]) ? DateTime.Parse(DateTime.ParseExact(Request["ngay_cap_thiet_bi"], "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")) : DateTime.Parse("1900-01-01"); //data.ten_phieu = data.ma_phieu; data.ngay_tao = DateTime.Now; data.nguoi_tao = currentUser.ma_nguoi_dung; data.ngay_cap_nhat = DateTime.Parse("1900-01-01"); data.nguoi_cap_nhat = ""; data.trang_thai = "MOI"; dbConn.Insert(data); id = (int)dbConn.GetLastInsertId(); foreach (var item in details) { PODetail newdata = new PODetail(); newdata.ma_phieu_header = data.ma_phieu; newdata.ma_san_pham = item.ma_san_pham; newdata.so_luong = item.so_luong; newdata.thong_so_ky_thuat = item.thong_so_ky_thuat; newdata.muc_dich_su_dung = ""; newdata.nguoi_tao = currentUser.ma_nguoi_dung; newdata.ma_to_trinh = item.ma_to_trinh; newdata.id_StatementDetail = item.id_StatementDetail; newdata.don_gia_vat = item.don_gia_vat; newdata.don_gia = item.don_gia; newdata.thue_vat = item.thue_vat; newdata.don_vi_tinh = item.don_vi_tinh; newdata.chi_phi = item.chi_phi; newdata.ma_don_vi = item.ma_don_vi; newdata.ma_chi_nhanh = item.ma_chi_nhanh; newdata.thong_tin_noi_bo = item.thong_tin_noi_bo; newdata.ngay_tao = DateTime.Now; newdata.ngay_cap_nhat = DateTime.Parse("1900-01-01"); newdata.nguoi_cap_nhat = ""; newdata.trang_thai = ""; dbConn.Insert <PODetail>(newdata); StatementDetail detail = dbConn.FirstOrDefault <StatementDetail>(s => s.id == item.id_StatementDetail); detail.ma_don_dat_hang = ma_phieu; dbConn.Update(detail); } } else { return(Json(new { success = false, error = "Bạn không có quyền thêm dữ liệu" })); } return(Json(new { success = true, id = id })); } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } } }
public void UpdatePOHeader(POHeader poHeader) { context.Entry(poHeader).State = EntityState.Modified; }
public void DeletePOHeader(string poNumber) { POHeader poHeader = context.POHeaders.Find(poNumber); context.POHeaders.Remove(poHeader); }
public void InsertPOHeader(POHeader poHeader) { context.POHeaders.Add(poHeader); }
public ActionResult GoodsReceipt(string[] arrQty) { List <POFullDetail> poFullDetailList = (List <POFullDetail>)Session["POItems"]; string poNumber = (string)Session["poNumber"]; int arrayCount = 0; float totalInventoryValue = 0; string receiptNo = null; bool invalid = false; int c = 0; try { using (SSISdbEntities m = new SSISdbEntities()) { foreach (POFullDetail p in poFullDetailList) { if ((p.QuantityOrdered - p.QuantityDelivered) < Convert.ToInt32(arrQty[c]) || Convert.ToInt32(arrQty[c]) < 0) { invalid = true; } if (Convert.ToInt32(arrQty[c]) < 0) { invalid = true; } c++; } if (invalid == false) { int newId = m.POReceiptHeaders.Count() + 1; receiptNo = CommonLogic.SerialNo(newId, "POR"); int countQty = 0; int countInventory = 0; // Tabulate all qty, to ensure total is not 0 (Prevent empty entries) for (int i = 0; i < arrQty.Length; i++) { countQty += Convert.ToInt32(arrQty[i]); } // Create New PO Receipt Header if (countQty > 0) { // Preparation for database update foreach (POFullDetail p in poFullDetailList) { PODetail pod = m.PODetails.Where(x => x.ItemCode == p.ItemCode && x.PONumber == p.PONumber).FirstOrDefault(); totalInventoryValue += pod.UnitCost; } // Create PO Receipt Header first POReceiptHeader porh = new POReceiptHeader(); porh.ReceiptNo = receiptNo; porh.PONumber = poNumber; porh.DeliveryOrderNo = ""; porh.ReceivedDate = DateTime.Now; porh.Receiver = (string)Session["LoginEmployeeID"]; porh.Remarks = ""; porh.TransactionType = "PO Receipt"; porh.TotalAmount = totalInventoryValue; m.POReceiptHeaders.Add(porh); m.SaveChanges(); TempData["ReceiptNo"] = receiptNo; // Adding into Database based on Items foreach (POFullDetail p in poFullDetailList) { PODetail pod = m.PODetails.Where(x => x.ItemCode == p.ItemCode && x.PONumber == p.PONumber).FirstOrDefault(); int qty = Convert.ToInt32(arrQty[arrayCount]); // Only execute if qty > 0, meaning there's good received. if (qty > 0 && (pod.QuantityOrdered - pod.QuantityDelivered) != 0) { // Update PO Details Table if (pod.QuantityBackOrdered == qty) { pod.QuantityBackOrdered = 0; } else { pod.QuantityBackOrdered = pod.QuantityBackOrdered - qty; } pod.QuantityDelivered += qty; m.SaveChanges(); // Update Item on Hand Item item = m.Items.Where(x => x.ItemCode == p.ItemCode).FirstOrDefault(); item.Quantity += qty; m.SaveChanges(); // Update Item Transaction ItemTransaction itemTransaction = new ItemTransaction(); itemTransaction.TransDateTime = DateTime.Now; itemTransaction.DocumentRefNo = poNumber; itemTransaction.ItemCode = item.ItemCode; itemTransaction.TransactionType = "PO Receipt"; itemTransaction.Quantity = qty; itemTransaction.UnitCost = pod.UnitCost; itemTransaction.Amount = pod.UnitCost * qty; m.ItemTransactions.Add(itemTransaction); m.SaveChanges(); // Update POReceipt Details POReceiptDetail pord = new POReceiptDetail(); pord.ReceiptNo = receiptNo; pord.PONumber = poNumber; pord.ItemCode = item.ItemCode; pord.QuantityReceived = qty; pord.UnitCost = pod.UnitCost; pord.Amount = pod.UnitCost * qty; m.POReceiptDetails.Add(pord); m.SaveChanges(); p.QuantityOrdered = pod.QuantityBackOrdered; p.QuantityDelivered = pod.QuantityDelivered; } arrayCount++; } // Checking for completion of PO foreach (POFullDetail p in poFullDetailList) { PODetail pod = m.PODetails.Where(x => x.ItemCode == p.ItemCode && x.PONumber == p.PONumber).FirstOrDefault(); countInventory += pod.QuantityBackOrdered; } POHeader poh = m.POHeaders.Where(x => x.PONumber == poNumber).FirstOrDefault(); // Completed PO if (countInventory == 0) { poh.Status = "Completed"; } else { poh.Status = "Outstanding"; } m.SaveChanges(); Session["GRListPage"] = "2"; Session["poStatus"] = "Completed"; } } else { Debug.WriteLine("invalid qty"); ViewBag.ErrorAmt = "Invalid Quantity!"; Session["StorePurchaseTabIndex"] = "2"; return(View("DisplayPO")); } } } catch (Exception) { TempData["ErrorMsg"] = "Please enter a valid number!"; Session["StorePurchaseTabIndex"] = "2"; return(View("DisplayPO")); } Session["POItems"] = poFullDetailList; Session["poDetailsEditMode"] = false; Session["grId"] = receiptNo; Session["StorePurchaseTabIndex"] = "3"; return(RedirectToAction("DisplayGR", "StorePurchase")); }
public POHeaderDTO Add(POHeaderDTO pOHeader) { var response = _projectPurchaseOrderRepository.Add(POHeader.MapFromDomainEntity(pOHeader)); return(POHeaderDTO.MapFromDatabaseEntity(response)); }
public HttpResponseMessage Post([FromBody] POHeaderModel objPOHeaderModel) { try { if (objPOHeaderModel != null) { if (objPOHeaderModel.PODetails == null) { throw new Exception("PODetails is Null!"); } if (objPOHeaderModel.PODetails.Count() > 1) { throw new Exception("PODetails more than one row!"); } var podtlRcvQty = objPOHeaderModel.PODetails.Where(x => x.OrdQty < (x.Qty + x.PrevRcvQty)).SingleOrDefault(); if (podtlRcvQty != null) { throw new Exception("Receivng Qty is more than OrderQty!"); } var tuid = objPOHeaderModel.PODetails.Select(s => s.TuId).ToList <string>().FirstOrDefault(); if (string.IsNullOrEmpty(tuid)) { throw new Exception("TuId is Empty!"); } var lotNum = objPOHeaderModel.PODetails.Select(s => s.LotNum).ToList <string>().FirstOrDefault(); var tracklot = objPOHeaderModel.PODetails.Select(s => s.TrackLot).ToList <bool>().FirstOrDefault(); if (string.IsNullOrEmpty(lotNum) && tracklot) { throw new Exception("LotNum is Empty!"); } if (tracklot) { var objLotAtt = objPOHeaderModel.PODetails.Select(s => s.LotAttribute).ToList <LotAttributeModel>().FirstOrDefault(); if (objLotAtt == null) { throw new Exception("Lot Attribute is Null!"); } else { if (objLotAtt.AttBatch == "M" && string.IsNullOrEmpty(objLotAtt.Batch)) { throw new Exception("Batch Attribute is Mandatory!"); } if (objLotAtt.AttMfgBatch == "M" && string.IsNullOrEmpty(objLotAtt.MBatch)) { throw new Exception("MBatch Attribute is Mandatory!"); } if (objLotAtt.AttMfgLot == "M" && string.IsNullOrEmpty(objLotAtt.MLot)) { throw new Exception("MLot Attribute is Mandatory!"); } if (objLotAtt.AttHeat == "M" && string.IsNullOrEmpty(objLotAtt.Heat)) { throw new Exception("Heat Attribute is Mandatory!"); } if (objLotAtt.AttFirmware == "M" && string.IsNullOrEmpty(objLotAtt.Firm)) { throw new Exception("Firm Attribute is Mandatory!"); } if (objLotAtt.AttBeforeDt == "M" && objLotAtt.BestBefore == null) { throw new Exception("BeforeDate Attribute is Mandatory!"); } if (objLotAtt.AttMfgDt == "M" && objLotAtt.OrigMfg == null) { throw new Exception("OrigMfg Date Attribute is Mandatory!"); } if (objLotAtt.AttCureDt == "M" && objLotAtt.Cure == null) { throw new Exception("CureDate Attribute is Mandatory!"); } if (objLotAtt.AttExpDt == "M" && objLotAtt.Expire == null) { throw new Exception("ExpiryDate Attribute is Mandatory!"); } } } POHeader objPOHeader = _pOReceiptModelFactory.Convert(objPOHeaderModel); BusinessLayer BL = new BusinessLayer(); string msg = BL.InsertPOHeader(objPOHeader); if (msg == "") { return(Request.CreateResponse(HttpStatusCode.OK, msg)); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, msg)); } } else { throw new Exception("POHeader is Null!"); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }