public IActionResult RegisterCashDesk(RegisterCashDeskViewModel model) { if (User.IsInRole("blocked") || User.IsInRole("operator")) { return(RedirectToAction("BlockPage", "BlockedUser")); } var pattern = "SWK"; var number = 10000000 + _context.Kkms.Count() + 1; string res = number.ToString().Substring(1); string serialNumber = pattern + res; var user = _userManager.Users.FirstOrDefault(i => i.Id == model.UserId); if (user != null) { Kkm kkm = new Kkm { Name = model.Name, Description = model.Description, SerialNumber = serialNumber, UserId = user.Id, CurrentStatus = "Создана", Address = user.Address, Mode = "Режим отправки в ОФД", NameOrg = user.Title, Iin = user.Inn }; _context.Kkms.Add(kkm); } _context.SaveChanges(); return(RedirectToAction("GetCashDesk", "InitializeCashDesk", new { id = model.UserId })); }
private async Task UpdateDatabaseFields(Kkm kkm, Operation operation) { kkm.ReqNum += 1; _applicationContext.Update(kkm); _applicationContext.Operations.Add(operation); await _applicationContext.SaveChangesAsync(); }
public CloseShiftRequest(Kkm kkm, User org, int shiftNumber) { Command = CommandTypeEnum.COMMAND_CLOSE_SHIFT; Service = new Service(new RegInfo(GetOrg(org), GetKkm(kkm))); DeviceId = kkm.DeviceId; ReqNum = kkm.ReqNum; Token = kkm.OfdToken; CloseShift = new CloseShift { IsOffline = false, FrShiftNumber = shiftNumber, DateTime = new DateTime { Date = new Date { Day = System.DateTime.Now.Day, Month = System.DateTime.Now.Month, Year = System.DateTime.Now.Year }, Time = new Time { Hour = System.DateTime.Now.Hour, Minute = System.DateTime.Now.Minute, Second = System.DateTime.Now.Second } } }; }
public IActionResult ChangeToken(Kkm kkmChange) { if (User.IsInRole("blocked") || User.IsInRole("operator")) { return(RedirectToAction("BlockPage", "BlockedUser")); } try { if (ModelState.IsValid) { var kkm = _context.Kkms.FirstOrDefault(i => i.Id == kkmChange.Id); if (kkm != null) { RequestOfdCashDesk kkmRequest = new RequestOfdCashDesk { FnsKkmId = kkm.FnsKkmId, DeviceId = kkm.DeviceId, TokenOfd = kkmChange.OfdToken, SerialNumber = kkm.SerialNumber, Iin = kkm.Iin, NameOrg = kkm.NameOrg, ReqNum = 56 }; var response = RequestOfd(kkmRequest); if (response.Result.Result.ResultCode == 0) { ResponseWeb(response, kkm.Id); } else { ModelState.AddModelError(string.Empty, "Некорректный запрос, попробуйте снова"); return(View(new Kkm() { Id = kkmChange.Id })); } } } else { ModelState.AddModelError(string.Empty, "Некорректный запрос, попробуйте снова"); } } catch (Exception) { ModelState.AddModelError(string.Empty, "Некорректный запрос, попробуйте снова"); } return(RedirectToAction("GetCashDesk", "InitializeCashDesk", new { id = kkmChange.UserId })); }
private OfdKkm GetKkm(Kkm kkm) { return(new OfdKkm { FnsKkmId = kkm.FnsKkmId, PointOfPaymentNumber = kkm.PointOfPayment, SerialNumber = kkm.SerialNumber, TerminalNumber = kkm.TerminalNumber }); }
public XReportOfdRequestModel(Kkm kkm, User user) { Command = CommandTypeEnum.COMMAND_REPORT; DeviceId = kkm.DeviceId; ReqNum = kkm.ReqNum; Token = kkm.OfdToken; var regInfo = new RegInfo(GetOrg(user), GetKkm(kkm)); Service = new Service(regInfo); Report = new Report(ReportTypeEnum.REPORT_X, GetDateTime(), false); }
public async void Request(Kkm kkm, User user) { var request = new XReportOfdRequestModel(kkm, user); try { Log.Information("OfdXReport|Post"); Log.Information("Отправка запроса на Х-Отчет в ОФД"); await HttpService.Post(request); } catch (Exception e) { Log.Error(e.Message); } }
public XReportKkmResponse(List <ShiftOperation> shiftOperations, IQueryable <Operation> operations, User org, Kkm kkm, Shift shift) { Data = new Data { Buy = GetOperation(shiftOperations, OperationTypeEnum.OPERATION_BUY), Sell = GetOperation(shiftOperations, OperationTypeEnum.OPERATION_SELL), ReturnBuy = GetOperation(shiftOperations, OperationTypeEnum.OPERATION_BUY_RETURN), ReturnSell = GetOperation(shiftOperations, OperationTypeEnum.OPERATION_SELL_RETURN), TaxPayerName = org.UserName, TaxPayerVAT = true, TaxPayerIN = org.Inn, TaxPayerVATNumber = "1231212", TaxPayerVATSeria = "32132", CashboxIN = kkm.DeviceId, CashboxSN = kkm.SerialNumber, CashboxRN = kkm.FnsKkmId, StartOn = shift.OpenDate, CloseOn = shift.CloseDate, ReportOn = DateTime.Now, CashierCode = org.OperatorCode, ShiftNumber = shift.Number, ControlSum = 1, DocumentCount = operations.Count(), OfflineMode = true, ReportNumber = 1, CashboxOfflineMode = true, EndNonNullable = new NonNullableApiModel() { Sell = shift.SellSaldoEnd, Buy = shift.BuySaldoEnd, ReturnBuy = shift.RetunBuySaldoEnd, ReturnSell = shift.RetunSellSaldoEnd }, StartNonNullable = new NonNullableApiModel() { Sell = shift.SellSaldoBegin, Buy = shift.BuySaldoBegin, ReturnBuy = shift.RetunBuySaldoBegin, ReturnSell = shift.RetunSellSaldoBegin }, SumInCashbox = shift.KkmBalance, PutMoneySum = 0, TakeMoneySum = 0 }; }
private async Task <CloseShiftOfdResponse> OfdRequest(Kkm kkm, User org, int shiftNumber) { var closeShiftRequest = new CloseShiftRequest(kkm, org, shiftNumber); try { Log.Information("OfdCloseShiftRequest|Post"); Log.Information("Отправка запроса на закрытие смены в ОФД"); await HttpService.Post(closeShiftRequest); } catch (Exception e) { Log.Error(e.Message); } var x = await HttpService.Post(closeShiftRequest); string json = JsonConvert.SerializeObject(x); var response = JsonConvert.DeserializeObject <CloseShiftOfdResponse>(json); return(response); }
private async Task <Shift> GetShift(User oper, Kkm kkm) { Shift shift; if (!_applicationContext.Shifts.Any()) { shift = new Shift { OpenDate = DateTime.Now, KkmId = kkm.Id, Number = 1, UserId = oper.Id }; await _applicationContext.Shifts.AddAsync(shift); await _applicationContext.SaveChangesAsync(); } else if (_applicationContext.Shifts.Last().CloseDate != DateTime.MinValue) { shift = new Shift { OpenDate = DateTime.Now, KkmId = kkm.Id, UserId = oper.Id, Number = _applicationContext.Shifts.Last().Number + 1, BuySaldoBegin = _applicationContext.Shifts.Last().BuySaldoEnd, SellSaldoBegin = _applicationContext.Shifts.Last().SellSaldoEnd, RetunBuySaldoBegin = _applicationContext.Shifts.Last().RetunBuySaldoEnd, RetunSellSaldoBegin = _applicationContext.Shifts.Last().RetunSellSaldoEnd, }; await _applicationContext.Shifts.AddAsync(shift); await _applicationContext.SaveChangesAsync(); } shift = _applicationContext.Shifts.Last(); return(shift); }
public IActionResult CheckName(RegisterCashDeskViewModel model) { if (User.IsInRole("blocked")) { return(RedirectToAction("BlockPage", "BlockedUser")); } var kkm = new Kkm { Name = model.Name, Description = model.Description, }; if (_context.Kkms.Any(u => string.Equals(u.Name.Trim(), model.Name) && u.Id == kkm.Id)) { return(Ok(true)); } else if (_context.Kkms.Any(u => string.Equals(u.Name.Trim(), model.Name))) { return(Ok(false)); } return(Ok(true)); }
public async Task <JsonResult> Post([FromBody] Kkm kkm) { string json = JsonConvert.SerializeObject(kkm, Formatting.Indented); return(Json(json)); }
public FiscalOfdRequest(Operation operation, CheckOperationRequest checkOperationRequest, Kkm kkm, Org org) { Command = CommandTypeEnum.COMMAND_TICKET; Token = kkm.OfdToken; Service = new Service(new RegInfo(org, GetKkm(kkm))); DeviceId = kkm.DeviceId; ReqNum = kkm.ReqNum + 15; Ticket = new Ticket { Operation = operation.Type, Operator = new Operator { Code = operation.User.OperatorCode, Name = operation.User.UserName }, DateTime = GetDateTime(operation), Payments = GetPayments(checkOperationRequest), Items = GetItems(checkOperationRequest), Amounts = new Amount() { Total = new Sum() { Bills = operation.Amount, Coins = 0 } }, Domain = new Domain { Type = 0 }, }; }
private string GetUrl(Kkm kkm, string checkNumber, decimal sum, DateTime date) { var dateString = $"{date.Year}{date.Month}{date.Day}T{date.Hour}{date.Minute}{date.Second}"; return($"http://consumer.test-oofd.kz?i={checkNumber}&f={kkm.FnsKkmId}&s={sum}&t={dateString}"); }
private Operation GetOperation(Shift shift, CheckOperationRequest checkOperationRequest, DateTime date, string qr, User oper, Kkm kkm) { var total = checkOperationRequest.Payments.Sum(p => p.Sum); var cardAmount = checkOperationRequest.Payments .Where(p => p.PaymentType == PaymentTypeEnum.PAYMENT_CARD) .Sum(p => p.Sum); var cashAmount = checkOperationRequest.Payments .Where(p => p.PaymentType == PaymentTypeEnum.PAYMENT_CASH) .Sum(p => p.Sum); var checkNumber = _applicationContext.Operations.Count(s => s.ShiftId == shift.Id) + 1; var operation = new Operation(checkOperationRequest.OperationType, shift.Id, OperationStateEnum.New, false, date, qr, total, checkOperationRequest.Change, cashAmount, cardAmount, oper.Id, kkm.Id, oper, kkm, checkNumber); return(operation); }
private static async Task <OfdFiscalResponse> OfdFiscalResponse(CheckOperationRequest checkOperationRequest, Operation operation, Kkm kkm, Org org) { var fiscalOfdRequest = new FiscalOfdRequest(operation, checkOperationRequest, kkm, org); var x = await HttpService.Post(fiscalOfdRequest); string json = JsonConvert.SerializeObject(x); var response = JsonConvert.DeserializeObject <OfdFiscalResponse>(json); return(response); }