예제 #1
0
 public frmCashMovement()
 {
     InitializeComponent();
     _cashMovement = new CashMovement();
     _category     = new Category();
     dateNow       = new DateTime();
 }
예제 #2
0
 //[ValidateAntiForgeryToken]
 public IActionResult Create([Bind("PaymentId,PaymentDate,MovementTypeId,QuantityMovmentType,Amount,PaymentMediaId,UserId,LimitUsableDate")] Payment payment)
 {
     if (ModelState.IsValid)
     {
         if (_paymentLogic.ProcessPayment(payment,
                                          _context.User.Where(u => u.UserId == payment.UserId).First().FullName,
                                          _context.User.Where(u => u.UserId == payment.UserId).First().Email))
         {
             CashMovement cashMov = new CashMovement
             {
                 Amount              = payment.Amount,
                 PaymentMediaId      = payment.PaymentMediaId,
                 CashMovementDate    = payment.PaymentDate,
                 CashMovementDetails = "Movimiento de Pago",
                 CashMovementTypeId  = 1,//1 es de tipo entrada
                 CashCategoryId      = _context.CashCategory.Where(x => x.CashCategoryDescription == "Movimiento de pago").FirstOrDefault().CashCategoryId,
                 CashSubcategoryId   = _context.CashSubcategory.Where(x => x.CashSubcategoryDescription == "Movimiento de pago").FirstOrDefault().CashSubcategoryId,
                 SupplierId          = _context.Supplier.Where(x => x.SupplierDescription == "Movimiento de pago").FirstOrDefault().SupplierId,
                 PaymentId           = payment.PaymentId
             };
             _context.Add(cashMov);
             _context.SaveChanges();
             return(RedirectToAction(nameof(Index)));
         }
     }
     ViewData["MovementTypeId"] = new SelectList(_context.MovementType, "MovementTypeId", "Description", payment.MovementTypeId);
     ViewData["PaymentMediaId"] = new SelectList(_context.PaymentMedia, "PaymentMediaId", "PaymentMediaDescription", payment.PaymentMediaId);
     ViewData["UserId"]         = new SelectList(_context.User, "UserId", "FullName", payment.UserId);
     return(View(payment));
 }
예제 #3
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Edit(int id, [Bind("CashMovementId,CashMovementDate,CashMovementDetails,Amount,CashMovementTypeId,CashCategoryId,SupplierId,CashSubcategoryId,PaymentMediaId")] CashMovement cashMovement)
        {
            if (id != cashMovement.CashMovementId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(cashMovement);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CashMovementExists(cashMovement.CashMovementId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CashCategoryId"]     = new SelectList(_context.CashCategory, "CashCategoryId", "CashCategoryDescription", cashMovement.CashCategoryId);
            ViewData["CashSubcategoryId"]  = new SelectList(_context.CashSubcategory, "CashSubcategoryId", "CashSubcategoryDescription", cashMovement.CashSubcategoryId);
            ViewData["CashMovementTypeId"] = new SelectList(_context.Set <CashMovementType>(), "CashMovementTypeId", "CashMovementTypeDescription", cashMovement.CashMovementTypeId);
            ViewData["SupplierId"]         = new SelectList(_context.Set <Supplier>(), "SupplierId", "SupplierDescription", cashMovement.SupplierId);
            ViewData["PaymentMediaId"]     = new SelectList(_context.Set <PaymentMedia>(), "PaymentMediaId", "PaymentMediaDescription", cashMovement.PaymentMediaId);
            return(View(cashMovement));
        }
예제 #4
0
 public frmSelectedCashMovement(int _cashMovementId, frmCashMovement owner)
 {
     InitializeComponent();
     CashMovementId = _cashMovementId;
     C      = new CashMovement();
     L      = new Log();
     _owner = owner;
 }
예제 #5
0
        public JsonResult _UpdateCash(CashMovement ins)
        {
            ins.Amount = ins.Count * MuRep.GetMoneyUnitValue(ins.MoneyUnitID);
            CashMovement ins2 = CashRep.Update(ins);

            //...Repopulate Grid...
            return(Json(new GridModel(MRep.GetCashMovements())));
        }
예제 #6
0
 public frmNewCashMovement(string _action, frmCashMovement owner)
 {
     InitializeComponent();
     titulo = _action;
     CM     = new CashMovement();
     L      = new Log();
     C      = new Category();
     _owner = owner;
 }
예제 #7
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var payment = await _context.Payment.FindAsync(id);

            CashMovement cashMovement = _context.CashMovement.Where(c => c.PaymentId == id).FirstOrDefault();

            _context.Payment.Remove(payment);
            _context.CashMovement.Remove(cashMovement);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
예제 #8
0
        public async Task <IActionResult> Create([Bind("CashMovementId,CashMovementDate,CashMovementDetails,Amount,CashMovementTypeId,CashCategoryId,SupplierId,CashSubcategoryId")] CashMovement cashMovement)
        {
            if (ModelState.IsValid)
            {
                _context.Add(cashMovement);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CashCategoryId"]     = new SelectList(_context.CashCategory, "CashCategoryId", "CashCategoryDescription", cashMovement.CashCategoryId);
            ViewData["CashSubcategoryId"]  = new SelectList(_context.CashSubcategory, "CashSubcategoryId", "CashSubcategoryDescription", cashMovement.CashSubcategoryId);
            ViewData["CashMovementTypeId"] = new SelectList(_context.Set <CashMovementType>(), "CashMovementTypeId", "CashMovementTypeDescription", cashMovement.CashMovementTypeId);
            ViewData["SupplierId"]         = new SelectList(_context.Set <Supplier>(), "SupplierId", "SupplierDescription", cashMovement.SupplierId);
            return(View(cashMovement));
        }
예제 #9
0
        private void CreateSaleInfo(int sessionId, CashMovement cashMovementCreated,
                                    ISaleDocumentType saleDocumentType, string customerName, List <SaleLineDto> saleLineDtos,
                                    string ruc, IEnumerable <ProductMovement> productMovements)
        {
            var saleAmount = GetSaleAmount(saleLineDtos);

            var sale = new Sale
            {
                Date         = DateTime.Now,
                Status       = Constants.SaleStatus.Created,
                SessionId    = sessionId,
                CashMovement = cashMovementCreated
            };

            uow.SaleRepository.Insert(sale);

            var saleDocument = new SaleDocument
            {
                DocumentType = saleDocumentType.Name,
                Number       = saleDocumentType.GetNextDocumentNumber(uow.GeneralConfigValuesRepository),
                Date         = DateTime.Now,
                CustomerName = customerName,
                RUC          = ruc,
                SubTotal     = saleDocumentType.GetSubTotalForDocument(saleAmount),
                IGV          = saleDocumentType.GetIgvForDocument(saleAmount),
                Total        = saleAmount,
                Status       = Constants.SaleDocumentStatus.Created,
                Sale         = sale
            };

            uow.SaleDocumentRepository.Insert(saleDocument);

            var zippedCollection = saleLineDtos.Zip(productMovements, (x, y) => new { SaleLineDto = x, ProductMovement = y });

            foreach (var zippedItem in zippedCollection)
            {
                var saleDetail = new SaleDetails()
                {
                    //TODO: Ingresar correlativo en linea del documento ([SaleDetailNumber])
                    ProductMovement = zippedItem.ProductMovement,
                    Quantity        = zippedItem.SaleLineDto.Quantity,
                    SaleDocument    = saleDocument,
                    SinglePrice     = zippedItem.SaleLineDto.UnitPrice,
                    TotalPrice      = zippedItem.SaleLineDto.LinePrice
                };
                uow.SaleDetailsRepository.Insert(saleDetail);
            }
        }
예제 #10
0
        //[ValidateAntiForgeryToken]
        public IActionResult Edit(int id, [Bind("PaymentId,PaymentDate,MovementTypeId,QuantityMovmentType,Amount,PaymentMediaId,UserId,LimitUsableDate")] Payment payment)
        {
            if (id != payment.PaymentId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (_paymentLogic.ProcessPayment(payment,
                                                     _context.User.Where(u => u.UserId == payment.UserId).First().FullName,
                                                     _context.User.Where(u => u.UserId == payment.UserId).First().Email))
                    {
                        var cashMovsPayment = _context.CashMovement.Where(c => c.PaymentId == payment.PaymentId);
                        if (cashMovsPayment.Count() > 0)
                        {
                            CashMovement cashMov = cashMovsPayment.FirstOrDefault();
                            cashMov.Amount           = payment.Amount;
                            cashMov.CashMovementDate = payment.PaymentDate;
                            cashMov.PaymentMediaId   = payment.PaymentMediaId;

                            _context.Update(cashMov);
                        }
                        _context.SaveChanges();
                        return(RedirectToAction(nameof(Index)));
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PaymentExists(payment.PaymentId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            ViewData["MovementTypeId"] = new SelectList(_context.MovementType, "MovementTypeId", "Description", payment.MovementTypeId);
            ViewData["PaymentMediaId"] = new SelectList(_context.Set <PaymentMedia>(), "PaymentMediaId", "PaymentMediaDescription", payment.PaymentMediaId);
            ViewData["UserId"]         = new SelectList(_context.User.Where(u => u.UserId == payment.UserId), "UserId", "FullName", payment.UserId);
            return(View(payment));
        }
예제 #11
0
        private CashMovement CreateCashMovement(int sessionId, decimal saleAmount, string movementCategory,
                                                string movementType)
        {
            var cashBoxService = new CashBoxService(uow);

            var cashMovement = new CashMovement
            {
                MovementCategory = movementCategory,
                MovementType     = movementType,
                MovementDate     = DateTime.Now,
                Amount           = saleAmount,
                MovementStatus   = Constants.CashMovementStatus.Ok,
                CashboxId        = cashBoxService.GetDefatultCashbox().CashboxId,
                SessionId        = sessionId
            };

            uow.CashMovementRepository.Insert(cashMovement);
            return(cashMovement);
        }
예제 #12
0
파일: Factory.cs 프로젝트: zazzetti/Week2
        /// <summary>
        /// Metodo per la creazione delle classi derivate di Movement
        /// </summary>
        /// <returns></returns>
        public static Movement FactoryMovement()
        {
            Movement movement = null;
            bool     flag     = true;

            do
            {
                int input;

                Console.WriteLine("Che tipo di movimento vuoi effettuare? Premi: \n 0 per Cash Movement \n 1 per Credit Card Movement \n 2 per Transfert Movement");
                while (!int.TryParse(Console.ReadLine(), out input))
                {
                    Console.WriteLine("Input non corretto");
                    Console.WriteLine(" Premi: \n 0 per Cash Movement \n 1 per Credit Card Movement \n 2 per Transfert Movement");
                }



                switch (input)
                {
                case 0:
                    movement = CashMovement.Create();
                    break;

                case 1:
                    movement = CreditCardMovement.Create();
                    break;

                case 2:
                    movement = TransfertMovement.Create();
                    break;

                default:
                    Console.WriteLine("Input non corretto");
                    flag = false;
                    break;
                }
            } while (flag == false);



            return(movement);
        }
예제 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("=== Account =====");
            Account account = new Account(
                123456,
                "Banca Popolare di Lodi",
                1000
                );

            #region Test

            Movement transfertMovement = new TransfertMovement(
                500,
                "Pop Vicenza",
                "Banca Popolare di Lodi"
                );
            account += transfertMovement;

            Movement cashMovement = new CashMovement(
                100,
                "Roberto Ajolfi"
                );
            account -= cashMovement;

            Movement ccMovement = new CreditCardMovement(
                230,
                CreditCardMovement.CreditCardType.AMEX,
                "9999-1234-1234-0001"
                );
            account -= ccMovement;

            #endregion

            #region Interactive Mode

            //bool next = true;
            //while (next)
            //{
            //    Console.Write("Amount: ");
            //    string amountString = Console.ReadLine();
            //    double.TryParse(amountString, out double amount);

            //    Console.Write("[I]n / [O]ut: ");
            //    string inOut = Console.ReadLine();

            //    Console.Write("Type ([C]Cash / [CC] / [T]ransfer: ");
            //    string type = Console.ReadLine();



            //    Movement movement;
            //    switch (type.ToUpper())
            //    {
            //        case "C":
            //            movement = new CashMovement(amount, "Roberto A.");
            //            break;
            //        case "CC":
            //            movement = new CreditCardMovement(
            //                amount,
            //                CreditCardMovement.CreditCardType.AMEX,
            //                "9999-12345-1234"
            //            );
            //            break;
            //        case "T":
            //            movement = new TransfertMovement(
            //                amount,
            //                "Pop Lodi",
            //                "Pop Vicenza"
            //            );
            //            break;
            //        default:
            //            movement = null;
            //            break;
            //    }

            //    if (movement != null)
            //        if (inOut.ToUpper() == "I")
            //            account += movement;
            //        else
            //            account -= movement;

            //    Console.Write("Ancora (S/N)?");
            //    string again = Console.ReadLine();
            //    next = (again.ToUpper() == "S");
            //}

            //Console.WriteLine("----------------------------------");
            //Console.WriteLine();
            //Console.WriteLine();

            #endregion

            Console.WriteLine(account.Statement());
        }
예제 #14
0
        static void Main(string[] args)
        {
            Random rand        = new Random();
            int    bancomatNum = rand.Next(11, 9999);

            Account <Movement> myBankAccount = new Account <Movement>("00001AYH182", "Morgan Stanley");
            bool exit = false;

            while (!exit)
            {
                Console.WriteLine("BENVENUTO/A AL BANCOMAT MORGAN STANLEY N. 00C" + bancomatNum);
                Thread.Sleep(1000);
                Console.WriteLine("Scegli che tipo di movimento vuole effettuare:");
                Console.WriteLine("-1 Cash Movement\n" +
                                  "-2 Transfert Movement\n" +
                                  "-3 Credit Card Movement");
                int x = int.Parse(Console.ReadLine());
                switch (x)
                {
                case 1:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double cashAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string cashSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca chi effettua l'operazione:");
                    string       performer = Console.ReadLine();
                    CashMovement cash      = new CashMovement(new Movement(cashAmount), performer);

                    if (cashSign.Equals("+"))
                    {
                        myBankAccount += cash;
                    }
                    else if (cashSign.Equals("-"))
                    {
                        myBankAccount -= cash;
                        cash.Amount   *= -1.0;
                    }
                    break;

                case 2:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double transfertAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string transfertSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca l'istituto emittente:");
                    string source = Console.ReadLine();
                    Console.WriteLine("Per favore inserisca l'istituto destinatario:");
                    string            dest      = Console.ReadLine();
                    TransfertMovement transfert = new TransfertMovement(new Movement(transfertAmount), source, dest);

                    if (transfertSign.Equals("+"))
                    {
                        myBankAccount += transfert;
                    }
                    else if (transfertSign.Equals("-"))
                    {
                        myBankAccount    -= transfert;
                        transfert.Amount *= -1.0;
                    }
                    break;

                case 3:
                    Console.WriteLine("Per favore inserisca l'ammontare:");
                    double cardAmount = double.Parse(Console.ReadLine());
                    Console.WriteLine("Per favore inserisca se è un movimento positivo o negativo  +/-:");
                    string cardSign = Console.ReadLine();

                    Console.WriteLine("Per favore inserisca l'emittente della carta scegliendo tra:");
                    Console.WriteLine("-AMEX\n" +
                                      "-VISA\n" +
                                      "-MASTER CARD\n" +
                                      "-OTHER");
                    Kind kind;
                    try
                    {
                        kind = (Kind)Enum.Parse(typeof(Kind), Console.ReadLine().Trim().Replace(" ", ""), true);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Ci dispiace, ma non è stato possibile individuare l'istituto emittente;\n" +
                                          "per favore ripeta la procedura digitando correttamente il nome dell'emittente\n");
                        Thread.Sleep(2500);
                        goto case 3;
                    }
                    Console.WriteLine("Per favore inserisca il numero di carta:");
                    string             cardNo     = Console.ReadLine();
                    CreditCardMovement creditCard = new CreditCardMovement(new Movement(cardAmount), kind, cardNo);

                    if (cardSign.Equals("+"))
                    {
                        myBankAccount += creditCard;
                    }
                    else if (cardSign.Equals("-"))
                    {
                        myBankAccount     -= creditCard;
                        creditCard.Amount *= -1.0;
                    }
                    break;

                default:
                    Console.WriteLine("Per favore inserisca un numero corrispondente al tipo di operazione");
                    break;
                }

                Console.WriteLine("Se vuole inserire un'altro movimento premi invio altrimenti prema Q");
                if (Console.ReadLine().ToLower().Equals("q"))
                {
                    exit = true;
                }
                Console.Clear();
            }

            Console.WriteLine("Vuole stampare il dettaglio del suo conto con annessa lista dei movimenti?   Y/N");
            if (Console.ReadLine().ToLower().Equals("y"))
            {
                Console.Clear();
                myBankAccount.Statement();
            }
        }
        static void Main(string[] args)
        {
            int x = 0;

            Console.WriteLine("Benvenuto sul Menu");

            //Creazione Account
            Account account = new Account();

            Console.WriteLine("Inserisci il nome della banca");
            account.NomeBanca = Console.ReadLine();
            Console.WriteLine("Inserisci il numero del conto");
            do
            {
                try
                {
                    x = 1;
                    int numeroConto = Convert.ToInt32(Console.ReadLine());
                    account.NumeroConto = numeroConto.ToString();
                }
                catch
                {
                    Console.WriteLine("Numero non valido, riprova");
                    x = 0;
                }
            } while (x == 0);

            Console.WriteLine(account);
            x = 0;

            do
            {
                Console.WriteLine("Movimenti Bancari");

                Console.WriteLine("Inserisci il tipo di movimento che vuoi eseguire:");
                Console.WriteLine("1 - Cash Movement");
                Console.WriteLine("2 - Credit Card Movement");
                Console.WriteLine("3 - Transfert Movement");
                Console.WriteLine("4 - Stampare la lista dei movimenti");
                Console.WriteLine("Premi un tasto per uscire");

                char c = Console.ReadKey().KeyChar;
                Console.WriteLine();

                switch (c)
                {
                case '1':
                    CashMovement movimento = new CashMovement();
                    Console.WriteLine("Inserisci l'esecutore del movimento");
                    movimento.Esecutore = Console.ReadLine();
                    GestioneMovimenti <CashMovement> .Gestione(movimento, account);

                    Console.WriteLine(movimento);
                    break;

                case '2':
                    CreditCardMovement creditCardMovement = new CreditCardMovement();

                    creditCardMovement.NumeroCarta = creditCardMovement.ControlloNumeroCarta();
                    Console.WriteLine($"Inserisci il tipo della carta: {Tipo.Amex}, {Tipo.Mastercard}, {Tipo.Visa}, {Tipo.Other}");
                    creditCardMovement.Tipo = creditCardMovement.ControlloCarta(Console.ReadLine());
                    GestioneMovimenti <CreditCardMovement> .Gestione(creditCardMovement, account);

                    Console.WriteLine(creditCardMovement);
                    break;

                case '3':
                    TransfertMovement trasferimento = new TransfertMovement();
                    Console.WriteLine("Inserisci la banca di destinazione");
                    trasferimento.BancaDestinazione = Console.ReadLine();
                    trasferimento.BancaOrigine      = account.NomeBanca;
                    GestioneMovimenti <TransfertMovement> .Gestione(trasferimento, account);

                    Console.WriteLine(trasferimento);
                    break;

                case '4':
                    account.Statement();
                    break;

                default:
                    x = 1;
                    Console.WriteLine();
                    break;
                }
            } while (x == 0);

            Console.WriteLine("Operazioni Terminate");
        }
예제 #16
0
        public static void BankMenù(Account <Movement> account)
        {
menu:
            Console.WriteLine("Choose one option: \n" +
                              "Register a cash transaction - press C\n" +
                              "Register a transfer transaction - press T\n" +
                              "Register a credit card transaction - press R\n" +
                              "Check all transaction - press P\n" +
                              "Quit - press Q");
            string answer = Console.ReadLine();

            switch (answer)
            {
            case "c":     //cash
                Movement m1 = StartingDataMovement();
                Console.WriteLine("Insert the Esecutor");
                string       Esec = Console.ReadLine();
                CashMovement cm   = new CashMovement(m1.MovementAmount, m1.MovementDate, m1.isIncome, Esec);
                DoTransaction(cm, account);
                goto menu;


            case "t":     // transfer
                Movement m2 = StartingDataMovement();
                Console.WriteLine("Insert the origin bank:");
                string ob = Console.ReadLine();
                Console.WriteLine("Insert the destination bank:");
                string            db = Console.ReadLine();
                TransfertMovement tm = new TransfertMovement(m2.MovementAmount, m2.MovementDate, m2.isIncome, ob, db);
                DoTransaction(tm, account);
                goto menu;


            case "r":         //credit card
                Movement m3 = StartingDataMovement();
insertcard:
                Console.WriteLine("Insert the cardType\n" +
                                  "AMEX - press A\n" +
                                  "VISA - press V\n" +
                                  "MASTERCARD - press M" +
                                  "OTHER -press O");
                string   cardtype = Console.ReadLine();
                CardType ct;
                if (cardtype == "a" || cardtype == "v" || cardtype == "m" || cardtype == "o")
                {
                    ct = type(cardtype);
                }
                else
                {
                    goto insertcard;
                }
                Console.WriteLine("Insert the card number ");
                string             cn  = Console.ReadLine();
                CreditCardMovement ccm = new CreditCardMovement(m3.MovementAmount, m3.MovementDate, m3.isIncome, cn, ct);
                DoTransaction(ccm, account);
                goto menu;


            case "p":
                account.statement();
                goto menu;

            case "q":
                return;
            }
        }