Exemple #1
0
 public static List <DeviceInfo> GetShortDeviceInventoryList()
 {
     if (CashIn == null)
     {
         return(null);
     }
     return(CashIn.GetShortDeviceInventory());
 }
Exemple #2
0
 public bool CheckBillValidator()
 {
     if (CashIn == null)
     {
         return(false);
     }
     return(CashIn.CheckBillValidator());
 }
Exemple #3
0
 public bool CheckCoinAcceptor()
 {
     if (CashIn == null)
     {
         return(false);
     }
     return(CashIn.CheckCoinAcceptor());
 }
Exemple #4
0
        public bool IsCashDatasetValid()
        {
            bool result = false;

            if (CashIn != null)
            {
                result = CashIn.IsDataSetValid();
            }
            return(result);
        }
        private void Subtitution(CashIn cashInDb, CashIn cashInView)
        {
            cashInDb.Date = cashInView.Date;
            cashInDb.Note = cashInView.Note;

            //delete detail
            for (int i = cashInDb.CashInDetails.Count - 1; i >= 0; i--)
            {
                int idReg = cashInDb.CashInDetails[i].Id;

                CashInDetail reg = cashInView.CashInDetails.FirstOrDefault(p => p.Id == idReg);
                if (reg == null)
                {
                    db.Entry(cashInDb.CashInDetails[i]).State = EntityState.Deleted;
                    //cashoutDb.RegularDetails.RemoveAt(i);
                }
            }
            //add or update detail
            for (int i = 0; i < cashInView.CashInDetails.Count; i++)
            {
                if (cashInView.CashInDetails[i].Id == 0)
                {
                    cashInDb.CashInDetails.Add(cashInView.CashInDetails[i]);
                }
                else
                {
                    CashInDetail regDetail = cashInView.CashInDetails[i];
                    CashInDetail detail    = cashInDb.CashInDetails.First(p => p.Id == regDetail.Id);
                    detail.Note   = regDetail.Note;
                    detail.Amount = regDetail.Amount;
                }
            }

            //image list
            //delete detail
            for (int i = cashInDb.ImageDatas.Count - 1; i >= 0; i--)
            {
                int idImg = cashInDb.ImageDatas[i].Id;

                var img = cashInView.ImageDatas.FirstOrDefault(p => p.Id == idImg);
                if (img == null)
                {
                    db.Entry(cashInDb.ImageDatas[i]).State = EntityState.Deleted;
                }
            }
            //add or update detail
            for (int i = 0; i < cashInView.ImageDatas.Count; i++)
            {
                if (cashInView.ImageDatas[i].Id == 0)
                {
                    cashInDb.ImageDatas.Add(cashInView.ImageDatas[i]);
                }
            }
        }
Exemple #6
0
        public void addCash(string desc, DateTime date)
        {
            CashIn cash = new CashIn()
            {
                Date     = date,
                Desc     = desc,
                userName = Program.Username,
            };

            db.CashIns.Add(cash);
            db.SaveChanges();
        }
Exemple #7
0
        public void AlterarStatusTemplate_OperacaoPendenteStatusEfetivada_DeveAlterarOStatus()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.Efetivada);

            //Assert
            Assert.AreEqual(StatusOperacao.Efetivada, operacao.Status);
        }
Exemple #8
0
        public void PodeAlterarStatus_StatusPendente_DeveRetornarTrue()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            var resultado = operacaoServico.PodeAlterarStatus(operacao);

            //Assert
            Assert.IsTrue(resultado);
        }
Exemple #9
0
        public void MarcarEfetivada_OperacaoPendente_DeveAlterarOStatus()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.MarcarEfetivada(operacao);

            //Assert
            Assert.AreEqual(StatusOperacao.Efetivada, operacao.Status);
        }
        public async Task Gerar(OperacaoUnariaDto dto)
        {
            operacaoServico.ValidarDescricao(dto.Descricao);

            var conta       = contaServico.ObterConta(dto.ContaId);
            var bonificacao = ObterBonificacao(conta.Id, dto.Valor);

            var cashIn = new CashIn(conta.Id, dto.Valor, dto.Descricao, conta.Saldo, bonificacao);

            cashInRepositorio.Post(cashIn);
            contaServico.VincularCashIn(conta, cashIn);

            await produtorClient.EnfileirarCashIn(new EfetivarOperacaoUnariaDto(cashIn.Id));
        }
Exemple #11
0
        public void AlterarStatusTemplate_OperacaoEfetivadaStatusComErro_DeveLancarExcecao()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.Efetivada
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.ComErro);

            //Assert
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
        }
Exemple #12
0
        public void PodeAlterarStatus_StatusComErro_DeveRetornarFalse()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.ComErro
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            var resultado = operacaoServico.PodeAlterarStatus(operacao);

            //Assert
            Assert.IsFalse(resultado);
        }
Exemple #13
0
        public void InitializeCashIn()
        {
            Log.Debug("Init cashin");

            if (!TurnOffCashInInit)
            {
                try
                {
                    cashin = GetCashInManagerInstance();

                    if (CashIn != null && !CashIn.IsDataSetValid())
                    {
                        CashinOK = false;
                        Log.Info("Cash validator dataset is invalid!");
                        throw new CashinDatasetException("Cash validator dataset is invalid!");
                    }
                    if (CashIn != null && !CashIn.AceptorsFound)
                    {
                        Log.Error("Cash validators are not found! Geldschein- und Münzprüfer nicht gefunden", new Exception());
                        CashinOK = false;
                        if (!CashinOK)
                        {
                            AsyncConnectCashin();
                            if (!System.Diagnostics.Debugger.IsAttached)
                            {
                                throw new CashinException("Cashin is not working!");
                            }
                        }
                    }
                    else
                    {
                        CashinOK = true;
                        //  AssignCashInEventEx();
                    }
                }
                catch (CashinException e)
                {
                    throw;
                }
                catch (CashinDatasetException e)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    Log.Error("Error initialising Cash-Hardware", ex);
                }
            }
        }
Exemple #14
0
        public void MarcarComErro_OperacaoPendente_DeveAlterarOStatus()
        {
            // Arrange
            var erro     = "teste";
            var operacao = new CashIn();

            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.MarcarComErro(operacao, erro);

            //Assert
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
            Assert.AreEqual(erro, operacao.Erro);
        }
Exemple #15
0
        public void AlterarStatusTemplate_OperacaoComErroStatusEfetivada_DeveLancarExcecao()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.ComErro
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.Efetivada);

            //Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("Não é possível alterar o status de uma operação Com erro!"));
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
        }
Exemple #16
0
        public async Task <CashInResponse> Post(CashIn request)
        {
            Log.Info(nameof(CashIn));
            Log.Info(request?.ToJson());
            request.Decrypt();
            if (!Constants.AVAILABLE_PAN_NUMBERS.Contains(request?.EncConsumerPAN))
            {
                throw new PANNotExistException();
            }

            var response = await request.GetResponse <CashInResponse>
                               (Constants.PROCESS_REQUEST_URL.PROCESS_POST_CASH_IN);

            Log.Info(nameof(CashInResponse));
            Log.Info(response?.ToJson());

            return(response);
        }
Exemple #17
0
        public void addCash(int categoryID, string desc, string receiptID, string price, string type, string TraineeName, string offerName)
        {
            CashIn cash = new CashIn()
            {
                Date        = DateTime.Now,
                CategoryID  = categoryID,
                Desc        = desc,
                RecieptID   = receiptID,
                Price       = price,
                Type        = type,
                TraineeName = TraineeName,
                userName    = Program.Username,
                OfferName   = offerName,
            };

            db.CashIns.Add(cash);
            db.SaveChanges();
        }
        public JsonResult CreateCashInFinal(CashIn cashflow, string log)
        {
            try
            {
                CashIn          cashInActive = cashflow;
                string          usr          = User.Identity.GetUserId();
                ApplicationUser xx           = db.Users.Find(usr);

                CutOff cutOff =
                    db.CutOffs.FirstOrDefault(p => p.BranchId == xx.BranchId && p.State == StateCutOff.Open) ??
                    SetCutOff(xx.BranchId.Value);


                if (cashflow.Id != 0)
                {
                    cashInActive = db.CashCards.OfType <CashIn>().First(p => p.Id == cashflow.Id);

                    Subtitution(cashInActive, cashflow);
                }
                else
                {
                    db.CashCards.Add(cashInActive);
                    //CashOut.Date = DateTime.Now;
                    cashInActive.CutOffId = cutOff.Id;
                    cashInActive.UserId   = usr;
                }


                cashInActive.SetToFinal();
                cashInActive.LogNote = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + " | " + User.Identity.Name +
                                       " | Final | " + log + "<br>" + cashInActive.LogNote;

                cashInActive.SetTotal();
                db.SaveChanges();


                return(Json(new { Success = 1, CashOutId = cashflow.Id, ex = "" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = 0, ex = ex.Message }));
            }
        }
Exemple #19
0
        public void VincularCashIn_PassandoPorParametro_DeveVincular()
        {
            // Arrange
            var conta = new Conta {
                CashIns = new List <CashIn>()
            };
            var cashIn = new CashIn();

            var contaRepositorio = Substitute.For <IContaRepositorio>();

            var contaServico = new ContaServico(contaRepositorio);

            // Act
            contaServico.VincularCashIn(conta, cashIn);

            // Assert
            contaRepositorio.Received(1).Update(conta);
            Assert.IsTrue(conta.CashIns.Any());
            Assert.AreSame(cashIn, conta.CashIns.First());
        }
Exemple #20
0
 public void AddTestMoNeyFromKeyboard(decimal money)
 {
     if (Active == (int)StationSr.STATION_TEST || Debugger.IsAttached)
     {
         if (CashIn != null && IsCashInEnabled)
         {
             if (money > Limit)
             {
                 cashin.CashLimitExceededEventHandler.DynamicInvoke(null, null);
             }
             else
             {
                 foreach (Delegate action in CashIn.GetInvocationList())
                 {
                     action.DynamicInvoke(null, new CashInEventArgs(money, money <= 2));
                 }
             }
         }
     }
 }
        public JsonResult CreateCashInDraft(CashIn cashIn)
        {
            try
            {
                CashIn cashInActive = cashIn;

                string          usr = User.Identity.GetUserId();
                ApplicationUser xx  = db.Users.Find(usr);

                CutOff cutOff =
                    db.CutOffs.FirstOrDefault(p => p.BranchId == xx.BranchId && p.State == StateCutOff.Open) ??
                    SetCutOff(xx.BranchId.Value);

                if (cashIn.Id != 0)
                {
                    cashInActive = db.CashCards.OfType <CashIn>().First(p => p.Id == cashIn.Id);

                    Subtitution(cashInActive, cashIn);
                }
                else
                {
                    db.CashCards.Add(cashInActive);
                    //CashOut.Date = DateTime.Now;
                    cashInActive.CutOffId = cutOff.Id;
                    cashInActive.UserId   = usr;
                }
                //set subtotal and total

                cashInActive.SetToDraft();

                cashInActive.SetTotal();
                db.SaveChanges();


                return(Json(new { Success = 1, CashOutId = cashIn.Id, ex = "" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = 0, ex = ex.Message }));
            }
        }
Exemple #22
0
        public void EnableCashIn(decimal stake, decimal limit)
        {
            try
            {
                if (CashIn == null)
                {
                    InitializeCashIn();
                }

                if (CashIn != null)
                {
                    CashIn.SetCredit(stake);
                    CashIn.Enable(limit);
                    IsCashInEnabled = limit > stake;
                    Limit           = limit;
                }
            }
            catch
            {
            }
        }
        public async Task Gerar_PrimeiroCashInValido_DeveRetornarOCashInComBonificacao()
        {
            // Arrange
            var conta = new Conta {
                Id = 1
            };
            var descricao = "Teste unitário.";

            CashIn cashInGerado = null;

            var cashInRepositorio = Substitute.For <ICashInRepositorio>();

            cashInRepositorio.Any(Arg.Any <Expression <Func <CashIn, bool> > >()).Returns(false);
            cashInRepositorio.When(x => x.Post(Arg.Any <CashIn>()))
            .Do(x => cashInGerado = x.Arg <CashIn>());

            var contaServico = Substitute.For <IContaServico>();

            contaServico.ObterConta(conta.Id).Returns(conta);

            var configuracaoServico = Substitute.For <IConfiguracaoServico>();

            configuracaoServico.ObterPercentualBonificacao().Returns(0.1m);

            var produtorClient  = Substitute.For <IProdutorOperacoesClient>();
            var operacaoServico = Substitute.For <IOperacaoServico>();

            var cashInServico = new CashInServico(cashInRepositorio, operacaoServico, contaServico, configuracaoServico, null, produtorClient);

            // Act
            await cashInServico.Gerar(new OperacaoUnariaDto(conta.Id, 10m, descricao));

            // Assert
            Assert.IsNotNull(cashInGerado);
            Assert.AreEqual(10m, cashInGerado.Valor);
            Assert.AreEqual(1m, cashInGerado.ValorBonificacao);
            Assert.AreEqual(descricao, cashInGerado.Descricao);
            Assert.AreEqual(conta.Id, cashInGerado.ContaId);
            Assert.AreNotEqual(default, cashInGerado.Data);
Exemple #24
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            a.addOrder(dtDate, txtDescription.Text, txtTotal.Text, ref orderID);
            foreach (DataRow dr in dt.Rows)
            {
                int    productID   = Convert.ToInt32(dr["م"]);
                string sell        = dr["سعر الوحدة"].ToString();
                string number      = dr["العدد"].ToString();
                string price       = dr["الثمن"].ToString();
                string productName = dr["الصنف"].ToString();
                a.addOrderDetails(orderID, productID, sell, number, price);
                var p          = db.Products.Find(productID);
                int categoryID = Convert.ToInt32(p.CategoryID);

                CashIn cash = new CashIn()
                {
                    Date        = Convert.ToDateTime(dtDate.EditValue),
                    CategoryID  = categoryID,
                    Desc        = productName,
                    RecieptID   = "",
                    Price       = price,
                    Type        = RGpaymentMethod.Text,
                    TraineeName = "",
                    userName    = Program.Username,
                    OfferName   = "",
                };
                db.CashIns.Add(cash);
                db.SaveChanges();
            }
            db.SaveChanges();
            if (RGpaymentMethod.SelectedIndex == 0)
            {
                u.updateTraffic(Convert.ToDouble(txtTotal.Text), 0);
            }
            XtraMessageBox.Show("تم إضافة الفاتورة بنجاح", "إضافة", MessageBoxButtons.OK, MessageBoxIcon.Information);
            DialogResult = DialogResult.OK;
            this.Close();
        }
Exemple #25
0
 public void CashInDisable()
 {
     CashIn.Disable();
 }
 public void VincularCashIn(Conta conta, CashIn cashIn)
 {
     conta.CashIns.Add(cashIn);
     contaRepositorio.Update(conta);
 }
        public IActionResult AddCashIn([FromBody] CashInObj CashInData)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    if (CashInData == null)
                    {
                        transaction.Rollback();
                        return(BadRequest("حذث خطأ في ارسال البيانات الرجاء إعادة الادخال"));
                    }

                    var userId = this.help.GetCurrentUser(HttpContext);

                    if (userId <= 0)
                    {
                        transaction.Rollback();
                        return(StatusCode(401, "الرجاء الـتأكد من أنك قمت بتسجيل الدخول"));
                    }

                    var UserType = this.help.GetCurrentUserType(HttpContext);
                    if (UserType == 1)
                    {
                        transaction.Rollback();
                        return(StatusCode(401, "عفوا لايمكن اضافة قيمة نقدية الا عن طريق المصرف"));
                    }


                    CashIn Cash = new CashIn();
                    Cash.Status        = 1;
                    Cash.Refrence      = 3;
                    Cash.Valuedigits   = CashInData.Valuedigits;
                    Cash.DepositType   = 3;
                    Cash.Description   = CashInData.description;
                    Cash.NumInvoiceDep = CashInData.NumInvoiceDep;
                    Cash.PersonalId    = CashInData.PersonalId;
                    //Cash.BankId =(int) db.BanksysBranch.Where(x => x.BranchId == this.help.GetCurrentBranche(HttpContext)).SingleOrDefault().BankId;
                    db.CashIn.Add(Cash);
                    db.SaveChanges();

                    BanksysBankActions BA = new BanksysBankActions();
                    BA.ActionType  = 3;
                    BA.Description = "إنشاء عملية نقدية - تأكيد مبدئي";
                    BA.UserId      = userId;
                    BA.CashInId    = Cash.CashInId;
                    BA.BranchId    = this.help.GetCurrentBranche(HttpContext);
                    BA.UserType    = UserType;
                    BA.ActionDate  = DateTime.Now;
                    db.BanksysBankActions.Add(BA);
                    db.SaveChanges();
                    transaction.Commit();

                    return(Ok("لقد قمت بتسـجيل بيانات العملية النقدية"));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    return(StatusCode(500, e.Message));
                }
            }
        }
        public ActionResult CashIn()
        {
            var cash = new CashIn();

            return(View(cash));
        }