public async Task <IActionResult> PostTransaction([FromBody] HOTransaction transactionApi) { APIResponse response = new APIResponse(); try { Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First(); Models.InventoryTransaction transaction = new Models.InventoryTransaction(); transaction.TransactionId = transactionApi.transactionId; transaction.StoreCode = transactionApi.storeCode; transaction.Remarks = ""; transaction.StoreName = store.Name; transaction.TransactionTypeId = RetailEnum.HOTransaction; transaction.TransactionTypeName = "HOTransaction"; transaction.WarehouseOriginal = store.WarehouseId; transaction.RequestDeliveryDate = DateTime.Now; transaction.TransactionDate = DateTime.Now; transaction.Status = "Pending"; transaction.StatusId = RetailEnum.doStatusPending; try { transaction.EmployeeCode = transactionApi.employeeId; transaction.EmployeeName = transactionApi.employeeName; } catch { } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //log record LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "HO Transaction"; log.Message = JsonConvert.SerializeObject(transactionApi); _context.LogRecord.Add(log); _context.InventoryTransaction.Add(transaction); await _context.SaveChangesAsync(); /* * //save Lines * for (int i = 0; i < transactionApi.hoTransactionLines.Count; i++) * { * Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines(); * transactionLines.InventoryTransactionId = transaction.Id; * transactionLines.ArticleId = transactionApi.hoTransactionLines[i].article.articleId; * transactionLines.ArticleName = transactionApi.hoTransactionLines[i].article.articleName; * transactionLines.Qty = transactionApi.hoTransactionLines[i].quantity; * _context.InventoryTransactionLines.Add(transactionLines); * await _context.SaveChangesAsync(); * } */ response.code = "1"; response.message = "Sucess Add Data"; // WebAPIInforController.InforAPIController inforAPIController = new WebAPIInforController.InforAPIController(_context); // inforAPIController.postRequestOrder(transactionApi, transaction.Id).Wait(); this.sequenceNumber(transactionApi); } catch (Exception ex) { response.code = "0"; response.message = ex.ToString(); } return(Ok(response)); }
public async Task <IActionResult> Update([FromBody] DeliveryOrder transactionApi) { //add for log try { LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Pre Confirm DO"; log.Message = JsonConvert.SerializeObject(transactionApi); log.TransactionId = transactionApi.deliveryOrderId; _context.LogRecord.Add(log); // _context.SaveChanges(); } catch { } //end log APIResponse response = new APIResponse(); try { bool statusConfirmed = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.deliveryOrderId && c.Status == "Confirmed"); if (statusConfirmed) { response.code = "0"; response.message = "DO has been confirmed"; return(Ok(response)); } bool exsist = await _context.InventoryTransactionLines.AnyAsync(x => x.Urridn == transactionApi.deliveryOrderId); if (!exsist) { Models.InventoryTransaction transaction = await _context.InventoryTransaction.Where(c => c.TransactionId == transactionApi.deliveryOrderId).FirstAsync(); transaction.Status = "Confirmed"; transaction.StatusId = RetailEnum.doStatusConfirmed; transaction.Id = transaction.Id; transaction.SyncDate = DateTime.Now; transaction.EmployeeCode = transactionApi.employeeId; transaction.EmployeeName = transactionApi.employeeName; try { transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.deliveryTime, "yyyy-MM-dd", CultureInfo.InvariantCulture); // MPOS } catch { //POS transaction.RequestDeliveryDate = DateTime.Now; } //log record if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.InventoryTransaction.Update(transaction); _context.SaveChanges(); List <Article> listar = new List <Article>(); //save Lines for (int i = 0; i < transactionApi.deliveryOrderLines.Count; i++) { var artikelaidifk = _context.Item.Where(x => x.Id == transactionApi.deliveryOrderLines[i].articleIdFk).First().ItemIdAlias; var itemanme = _context.Item.Where(x => x.Id == transactionApi.deliveryOrderLines[i].articleIdFk).First().Name; //add and remarkby frank // 7 april 2019 // untuk case yang double lines tidak ada packing number, referencenya beredsarkan id uniq di DO lins /*Models.InventoryTransactionLines transactionLines = await _context.InventoryTransactionLines.Where(c => c.InventoryTransactionId == transaction.Id && * c.ArticleId == artikelaidifk * && c.PackingNumber == transactionApi.deliveryOrderLines[i].packingNumber).FirstAsync(); */ Models.InventoryTransactionLines transactionLines = _context.InventoryTransactionLines.Find(transactionApi.deliveryOrderLines[i].id); //end of add end remark by frank transactionLines.ArticleName = itemanme; //reamakr by frank 1 oktobr // coa request // bool check = listar.Any(c => c.id == transactionApi.deliveryOrderLines[i].articleIdFk && c.articleIdAlias == transactionApi.deliveryOrderLines[i].packingNumber); // if (check) // { // transactionLines.RecieveQty = 0; // } // else // { transactionLines.RecieveQty = transactionApi.deliveryOrderLines[i].qtyReceive; // } //end of remark 1 oktoer Article dupli = new Article { id = transactionApi.deliveryOrderLines[i].articleIdFk, articleIdAlias = transactionApi.deliveryOrderLines[i].packingNumber }; listar.Add(dupli); _context.InventoryTransactionLines.Update(transactionLines); _context.SaveChanges(); } response.code = "1"; response.message = "Sucess Add Data"; DateTime maret20 = DateTime.ParseExact("2019-02-28", "yyyy-MM-dd", CultureInfo.InvariantCulture); if (transaction.TransactionDate >= maret20) { if (transaction.InforBypass == true) { } else { // WebAPIInforController.InforAPIController inforAPIController = new WebAPIInforController.InforAPIController(_context); // inforAPIController.RecieveRequestOrder(transactionApi, transaction.Id).Wait(); } if (transaction.StatusId == RetailEnum.doStatusConfirmed) { this.insertAndCalculateDO(transactionApi); } } } } catch (Exception ex) { response.code = "0"; response.message = ex.ToString(); } return(Ok(response)); }
public static InventoryTransaction From(Models.InventoryTransaction source) { return(new InventoryTransaction().PopulateWith(source)); }
public async Task <IActionResult> PostTransaction([FromBody] MutasiOrder transactionApi) { APIResponse response = new APIResponse(); try { if (transactionApi.mutasiFromWarehouse == "" || transactionApi.mutasiFromWarehouse == null || transactionApi.mutasiToWarehouse == "" || transactionApi.mutasiFromWarehouse == null) { response.code = "0"; response.message = "No Warehouse Origin / Destination, Make sure to fill it."; return(BadRequest(response)); } bool exist = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.mutasiOrderId); if (exist == false) { LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Mutasi Order"; log.Message = JsonConvert.SerializeObject(transactionApi); log.TransactionId = transactionApi.mutasiOrderId; await _context.LogRecord.AddAsync(log); await _context.SaveChangesAsync(); DateTime asd;// = DateTime.Now; try { // transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture); asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture); } catch { asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture); } DateTime maret10 = DateTime.ParseExact("2019-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture); if (maret10 >= asd) { response.code = "1"; response.message = "Sucess Add Data"; return(Ok(response)); } Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First(); Models.InventoryTransaction transaction = new Models.InventoryTransaction(); transaction.TransactionId = transactionApi.mutasiOrderId; transaction.StoreCode = transactionApi.storeCode; transaction.Remarks = transactionApi.remarks; transaction.StoreName = store.Name; transaction.TransactionTypeId = RetailEnum.mutasiTransaction; transaction.TransactionTypeName = "Mutasi"; transaction.Status = null; transaction.StatusId = null; transaction.WarehouseOriginal = transactionApi.mutasiFromWarehouse; transaction.WarehouseDestination = transactionApi.mutasiToWarehouse; transaction.RequestDeliveryDate = DateTime.Now; transaction.Sjlama = transactionApi.oldSJ; transaction.TransactionDate = DateTime.Now;//DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); try { transaction.TransactionDate = DateTime.Parse(transactionApi.date); } catch { } try { transaction.RequestDeliveryDate = DateTime.Parse(transactionApi.requestDeliveryDate); } catch { } transaction.TotalQty = transactionApi.totalQty; transaction.Remarks = ""; try { transaction.EmployeeCode = transactionApi.employeeId; transaction.EmployeeName = transactionApi.employeeName; } catch { } //add by frank for mutasi matrix try { Store storeMaster = _context.Store.Where(c => c.Code == transactionApi.mutasiFromWarehouse).First(); List <MutasiApproverMatrix> mutasiApproverMatrixs = _context.MutasiApproverMatrix.Where(c => c.StoreMatrix == storeMaster.Id).ToList(); MutasiApproverMatrix ms = mutasiApproverMatrixs.Where(c => c.StoreMatrix == storeMaster.Id).First(); if (transactionApi.mutasiType == 1) { transaction.EmployeeToApprove = ms.ApproverCity; } else if (transactionApi.mutasiType == 2) { transaction.EmployeeToApprove = ms.ApproverRegional; } else { transaction.EmployeeToApprove = ms.ApproverNational; } } catch { transaction.EmployeeToApprove = "admin123"; } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //log record _context.InventoryTransaction.Add(transaction); _context.SaveChanges(); //save Lines for (int i = 0; i < transactionApi.mutasiOrderLines.Count; i++) { Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines(); transactionLines.InventoryTransactionId = transaction.Id; transactionLines.ArticleId = transactionApi.mutasiOrderLines[i].article.articleIdAlias; transactionLines.ArticleName = transactionApi.mutasiOrderLines[i].article.articleName; transactionLines.Qty = transactionApi.mutasiOrderLines[i].quantity; try { transactionLines.ValueSalesPrice = transactionLines.Qty * _context.PriceList.Where(c => c.ItemId == transactionLines.ArticleId).First().SalesPrice; } catch { transactionLines.ValueSalesPrice = 0; } _context.InventoryTransactionLines.Add(transactionLines); _context.SaveChanges(); } response.code = "1"; response.message = "Sucess Add Data"; //Duplace karena di POS sudah kurang, jika rect qty akan bertambah, jika approve tidak perlu kalkulaso this.insertAndCalculateDO(transactionApi); this.sequenceNumber(transactionApi); } else { response.code = "1"; response.message = "Transaction Already Exist"; LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Mutasi Order"; log.Message = transactionApi.mutasiOrderId + "Aleader Exist"; _context.LogRecord.Add(log); _context.SaveChanges(); } } catch (Exception ex) { response.code = "1"; response.message = ex.ToString(); } // await _context.SaveChangesAsync(); return(Ok(response)); // return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction); }
public async Task <IActionResult> PostTransaction([FromBody] ReturnOrder transactionApi) { APIResponse response = new APIResponse(); bool exist = _context.InventoryTransaction.Any(c => c.TransactionId == transactionApi.returnOrderId); if (exist == false) { LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Return Order"; log.Message = JsonConvert.SerializeObject(transactionApi); log.TransactionId = transactionApi.returnOrderId; _context.LogRecord.Add(log); _context.SaveChanges(); DateTime asd; try { // transaction.RequestDeliveryDate = DateTime.ParseExact(transactionApi.timeStamp, "MMM dd, yyyy h:mm:ss tt", CultureInfo.InvariantCulture); asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture); } catch { asd = DateTime.ParseExact(transactionApi.date, "yyyy-MM-dd", CultureInfo.InvariantCulture); } DateTime maret10 = DateTime.ParseExact("2019-03-10", "yyyy-MM-dd", CultureInfo.InvariantCulture); if (maret10 >= asd) { response.code = "1"; response.message = "Sucess Add Data"; return(Ok(response)); } Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First(); Models.InventoryTransaction transaction = new Models.InventoryTransaction(); transaction.TransactionId = transactionApi.returnOrderId; transaction.StoreCode = transactionApi.storeCode; transaction.Remarks = "-"; transaction.StoreName = store.Name; transaction.TransactionTypeId = RetailEnum.returnTransaction; transaction.TransactionTypeName = "Return"; transaction.WarehouseOriginal = store.WarehouseId; transaction.WarehouseDestination = "210"; transaction.RequestDeliveryDate = DateTime.Now; // transaction.SJlama = transactionApi.oldSJ; try { transaction.TransactionDate = DateTime.Parse(transactionApi.date); } catch { } //DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); transaction.TotalQty = transactionApi.totalQty; transaction.Remarks = transactionApi.remark; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.InventoryTransaction.Add(transaction); await _context.SaveChangesAsync(); // this.insertInventoryReturnOrder(transactionApi).Wait(); //save Lines for (int i = 0; i < transactionApi.returnOrderLines.Count; i++) { Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines(); transactionLines.InventoryTransactionId = transaction.Id; transactionLines.ArticleId = transactionApi.returnOrderLines[i].article.articleIdAlias; transactionLines.ArticleName = transactionApi.returnOrderLines[i].article.articleName; transactionLines.Qty = transactionApi.returnOrderLines[i].quantity; // transactionLines.Amount = transactionApi.transactionLines[i].subtotal; _context.InventoryTransactionLines.Add(transactionLines); await _context.SaveChangesAsync(); } response.code = "1"; response.message = "Sucess Add Data"; this.sequenceNumber(transactionApi); } else { response.code = "0"; response.message = "Transacion Number Already Exist"; LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Return Order"; log.Message = transactionApi.returnOrderId + "Aleader Exist"; _context.LogRecord.Add(log); _context.SaveChanges(); } return(Ok(response)); // return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction); }
public async Task <IActionResult> PostTransaction([FromBody] RequestOrder transactionApi) { APIResponse response = new APIResponse(); try { Store store = _context.Store.Where(c => c.Code == transactionApi.storeCode).First(); Models.InventoryTransaction transaction = new Models.InventoryTransaction(); transaction.TransactionId = transactionApi.requestOrderId; transaction.StoreCode = transactionApi.storeCode; transaction.Remarks = ""; transaction.StoreName = store.Name; transaction.TransactionTypeId = RetailEnum.requestTransaction; transaction.TransactionTypeName = "Request"; transaction.WarehouseOriginal = store.WarehouseId; transaction.RequestDeliveryDate = DateTime.Now; transaction.TransactionDate = DateTime.Now;//DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); transaction.TotalQty = transactionApi.totalQty; transaction.Remarks = ""; transaction.Sjlama = transactionApi.oldSJ; try { transaction.EmployeeCode = transactionApi.employeeId; transaction.EmployeeName = transactionApi.employeeName; } catch { } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //log record LogRecord log = new LogRecord(); log.TimeStamp = DateTime.Now; log.Tag = "Request Order"; log.Message = JsonConvert.SerializeObject(transactionApi); _context.LogRecord.Add(log); _context.InventoryTransaction.Add(transaction); await _context.SaveChangesAsync(); //save Lines for (int i = 0; i < transactionApi.requestOrderLines.Count; i++) { Models.InventoryTransactionLines transactionLines = new Models.InventoryTransactionLines(); transactionLines.InventoryTransactionId = transaction.Id; transactionLines.ArticleId = transactionApi.requestOrderLines[i].article.articleId; transactionLines.ArticleName = transactionApi.requestOrderLines[i].article.articleName; // transactionLines.price = transactionApi.transactionLines[i].price; transactionLines.Qty = transactionApi.requestOrderLines[i].quantity; // transactionLines.Amount = transactionApi.transactionLines[i].subtotal; _context.InventoryTransactionLines.Add(transactionLines); await _context.SaveChangesAsync(); } response.code = "1"; response.message = "Sucess Add Data"; // this.insertAndCalculateRO(transactionApi).Wait(); WebAPIInforController.InforAPIController inforAPIController = new WebAPIInforController.InforAPIController(_context); inforAPIController.postRequestOrder(transactionApi, transaction.Id).Wait(); this.sequenceNumber(transactionApi); } catch (Exception ex) { response.code = "0"; response.message = ex.ToString(); } return(Ok(response)); // return CreatedAtAction("GetTransaction", new { id = transaction.Id }, transaction); }