public async Task <IHttpActionResult> GetDocBankSum(int id) { DocBankSum docBankSum = await db.DocBankSums.FindAsync(id); if (docBankSum == null) { return(NotFound()); } return(Ok(docBankSum)); }
//Используется в новых платежах по документу internal async Task <DocBankSum> mPutPostDocBankSum_2( DbConnectionSklad db, DocBankSum docBankSum, EntityState entityState //EntityState.Added, Modified ) { //Удалить платеж, но перед этим проверить был ли Z-отчет if (docBankSum.DocBankSumID > 0) { //Получем по "DocBankSumID" предыдущие значения платежа Models.Sklad.Doc.DocBankSum docBankSum_OLD = await Task.Run(() => db.DocBankSums.FindAsync(docBankSum.DocBankSumID)); //Удаляем платеж db.Entry(docBankSum_OLD).State = EntityState.Deleted; await Task.Run(() => db.SaveChangesAsync()); } //По кассе получаем Models.Sklad.Dir.DirBank dirBank = db.DirBanks.Find(docBankSum.DirBankID); //Проверка //1. В зависимости от "DirBankSumTypeID" сумма с "+" или с "-" Models.Sklad.Dir.DirBankSumType dirBankSumType = db.DirBankSumTypes.Find(docBankSum.DirBankSumTypeID); docBankSum.DocBankSumSum = dirBankSumType.Sign * docBankSum.DocBankSumSum; //2. Если изъятие из кассы и сумма в кассе меньше чем надо ихъять if (dirBankSumType.Sign < 0 && dirBank.DirBankSum < Math.Abs(docBankSum.DocBankSumSum)) { throw new System.InvalidOperationException( Classes.Language.Sklad.Language.msg27_4 + dirBank.DirBankSum + Classes.Language.Sklad.Language.msg27_5 + Math.Abs(docBankSum.DocBankSumSum) + Classes.Language.Sklad.Language.msg27_6 ); } //4. Сохранение db.Entry(docBankSum).State = entityState; await Task.Run(() => db.SaveChangesAsync()); //5. Ретурн return(docBankSum); }
//Сохранение internal async Task <DocBankSum> mPutPostDocBankSum( DbConnectionSklad db, DocBankSum docBankSum, EntityState entityState //EntityState.Added, Modified ) { //1. Дата операции DateTime DocBankSumDate = DateTime.Now; docBankSum.DocBankSumDate = DocBankSumDate; docBankSum.DateOnly = Convert.ToDateTime(DocBankSumDate.ToString("yyyy-MM-dd")); //2. Валюта //2.1. По кассе получаем Models.Sklad.Dir.DirBank dirBank = db.DirBanks.Find(docBankSum.DirBankID); //2.2. Получаем Курсы Models.Sklad.Dir.DirCurrency dirCurrency = db.DirCurrencies.Find(dirBank.DirCurrencyID); docBankSum.DirCurrencyID = dirCurrency.DirCurrencyID; docBankSum.DirCurrencyRate = dirCurrency.DirCurrencyRate; docBankSum.DirCurrencyMultiplicity = dirCurrency.DirCurrencyMultiplicity; //3. Проверка //3.1. В зависимости от "DirBankSumTypeID" сумма с "+" или с "-" Models.Sklad.Dir.DirBankSumType dirBankSumType = db.DirBankSumTypes.Find(docBankSum.DirBankSumTypeID); docBankSum.DocBankSumSum = dirBankSumType.Sign * docBankSum.DocBankSumSum; //3.2. Если изъятие из кассы и сумма в кассе меньше чем надо ихъять if (dirBankSumType.Sign < 0 && dirBank.DirBankSum < Math.Abs(docBankSum.DocBankSumSum)) { throw new System.InvalidOperationException( Classes.Language.Sklad.Language.msg27_4 + dirBank.DirBankSum + Classes.Language.Sklad.Language.msg27_5 + Math.Abs(docBankSum.DocBankSumSum) + Classes.Language.Sklad.Language.msg27_6 ); } //4. Сохранение db.Entry(docBankSum).State = entityState; await Task.Run(() => db.SaveChangesAsync()); //5. Ретурн return(docBankSum); }
public async Task <IHttpActionResult> PostDocBankSum(DocBankSum docBankSum) { #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции //Получаем Куку System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"]; // Проверяем Логин и Пароль Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true)); if (!field.Access) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10))); } //Изменяем строку соединения db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true)); //Права (1 - Write, 2 - Read, 3 - No Access) int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDocBankSums")); if (iRight != 1) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); } //Разные Функции function.NumberDecimalSeparator(); //Получам настройки Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1); #endregion #region Проверки if (!ModelState.IsValid) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91))); //return BadRequest(ModelState); } //Подстановки - некоторые поля надо заполнить, если они не заполены //docBankSum.Substitute(); docBankSum.DirEmployeeID = field.DirEmployeeID; #endregion #region Сохранение try { docBankSum = await Task.Run(() => mPutPostDocBankSum(db, docBankSum, EntityState.Added)); #region 6. JourDisp *** *** *** *** *** *** *** *** *** * Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp(); sysJourDisp.DirDispOperationID = 3; //Добавление записи sysJourDisp.DirEmployeeID = field.DirEmployeeID; sysJourDisp.ListObjectID = ListObjectID; sysJourDisp.TableFieldID = docBankSum.DocBankSumID; sysJourDisp.Description = ""; try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { } #endregion dynamic collectionWrapper = new { ID = docBankSum.DocBankSumID }; return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")); } catch (Exception ex) { return(Ok(returnServer.Return(false, exceptionEntry.Return(ex)))); } #endregion }
public async Task <IHttpActionResult> PutDocBankSum(int id, DocBankSum docBankSum) { return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0)))); }