Ejemplo n.º 1
0
        public void NapraviNalogZaPrenos(NalogZaPlacanje nzp)
        {
            //provrea dal se odma salje ili ne
            if (nzp.Hitno == true || nzp.Iznos > 250000)
            {
                //ako se odma salje pita se dal je ista banka
                RTGSNalog rtgsNalog = NapraviRTGSIzNaloga(nzp);
                PromenaStanjaUBanciZaFirmu(nzp.RacunDuznika, (-1) * nzp.Iznos, NapraviStavkuIzRTGSa(rtgsNalog));
                //BANKASVCCONSOLE(rtgsNalog.ToString());
                if (rtgsNalog.SWIFTBankaDuznika == rtgsNalog.SWIFTBankaPoverioca)
                {
                    //ne salje se centralnoj banci, ista banka je duznik i poverioc
                    nzp.Status = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_POSLAT;
                    NalogZaPlacanjeDB.InsertNalogZaPlacanje(nzp);
                    PromenaStanjaUBanciZaFirmu(nzp.RacunPoverioca, nzp.Iznos, NapraviStavkuIzRTGSa(rtgsNalog));
                }
                else
                {
                    //rtgs se salje centralnoj, centralna sacuva rtgs u bazi, i salje poruke o odobrenju/zaduzenju
                    nzp.Status = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_POSLAT;
                    NalogZaPlacanjeDB.InsertNalogZaPlacanje(nzp);
                    PosaljiRTGSCentralnojBanci(rtgsNalog);
                }
            }
            else
            {
                //sacuvaj nalog
                nzp.Status = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_KREIRAN;

                RTGSNalog rtgs = NapraviRTGSIzNaloga(nzp);

                if (rtgs.SWIFTBankaDuznika == rtgs.SWIFTBankaPoverioca)
                {
                    PromenaStanjaUBanciZaFirmu(rtgs.RacunDuznika, (-1) * rtgs.Iznos, NapraviStavkuIzRTGSa(rtgs));
                    PromenaStanjaUBanciZaFirmu(rtgs.RacunPoverioca, rtgs.Iznos, NapraviStavkuIzRTGSa(rtgs));
                    nzp.Status = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_POSLAT;
                }

                NalogZaPlacanjeDB.InsertNalogZaPlacanje(nzp);
            }
        }
Ejemplo n.º 2
0
        public void NapraviNalogZaGrupnoPlacanje()
        {
            List <NalogZaPlacanje>       naloziZaPlacanje;
            List <NalogZaGrupnoPlacanje> naloziZaGrupnoPlacanje = new List <NalogZaGrupnoPlacanje>();
            List <Banka> sveBanke = KombinacijeDB.getAllBanks(-1);

            foreach (Banka trenutnaBanka in sveBanke)
            {
                List <Banka> ostaleBanke = KombinacijeDB.getAllBanks(trenutnaBanka.IdBanke);

                foreach (Banka b in ostaleBanke)
                {
                    naloziZaPlacanje = NalogZaPlacanjeDB.GetNalogZaPlacanjeByStatusAndBankaAndPoverilacBanka(GlobalConst.STATUS_NALOGA_ZA_PLACANJE_KREIRAN, trenutnaBanka.IdBanke, b.IdBanke);
                    NalogZaGrupnoPlacanje nalogZaGrupnoPlacanje = new NalogZaGrupnoPlacanje();
                    nalogZaGrupnoPlacanje.Datum       = DateTime.Now;
                    nalogZaGrupnoPlacanje.DatumValute = DateTime.Now;
                    nalogZaGrupnoPlacanje.IDPoruke    = "1234";
                    nalogZaGrupnoPlacanje.ObracunskiRacunBankeDuznika   = b.ObracunskiRacun.ToString();             /*trenutnaBanka.ObracunskiRacun + "";*/
                    nalogZaGrupnoPlacanje.ObracunskiRacunBankePoverioca = trenutnaBanka.ObracunskiRacun.ToString(); /*b.ObracunskiRacun + "";*/
                    nalogZaGrupnoPlacanje.SifraValute = "RSD";


                    //StavkeGrupnogPlacanja stavkeGrupnogPlacanja = new StavkeGrupnogPlacanja();
                    nalogZaGrupnoPlacanje.StavkeGrupnogPlacanja = new StavkeGrupnogPlacanja();

                    foreach (NalogZaPlacanje nzp in naloziZaPlacanje)
                    {
                        StavkaGrupnogPlacanja stavkaGrupnogPlacanja = new StavkaGrupnogPlacanja();
                        stavkaGrupnogPlacanja.SifraValute        = nzp.OznakaValute;
                        stavkaGrupnogPlacanja.SvrhaPlacanja      = nzp.SvrhaPlacanja;
                        stavkaGrupnogPlacanja.RacunPoverioca     = nzp.RacunPoverioca;
                        stavkaGrupnogPlacanja.RacunDuznika       = nzp.RacunDuznika;
                        stavkaGrupnogPlacanja.Primalac           = nzp.Primalac;
                        stavkaGrupnogPlacanja.PozivNaBrZaduzenja = nzp.PozivNaBrZaduzenja;
                        stavkaGrupnogPlacanja.PozivNaBrOdobrenja = nzp.PozivNaBrOdobrenja + "";
                        stavkaGrupnogPlacanja.ModelZaduzenja     = nzp.ModelZaduzenja;
                        stavkaGrupnogPlacanja.ModelOdobrenja     = nzp.ModelOdobrenja;
                        stavkaGrupnogPlacanja.Iznos = nzp.Iznos;
                        stavkaGrupnogPlacanja.IDNalogaZaPlacanje = nzp.IDNalogaZaPlacanje + "";
                        stavkaGrupnogPlacanja.Duznik             = nzp.Duznik;
                        stavkaGrupnogPlacanja.DatumNaloga        = nzp.DatumNaloga;
                        nalogZaGrupnoPlacanje.StavkeGrupnogPlacanja.Add(stavkaGrupnogPlacanja);
                        nalogZaGrupnoPlacanje.UkupanIznos += nzp.Iznos;
                    }

                    nalogZaGrupnoPlacanje.SWIFTBankeDuznika   = b.SWIFTKod;             //trenutnaBanka.SWIFTKod;
                    nalogZaGrupnoPlacanje.SWIFTBankePoverioca = trenutnaBanka.SWIFTKod; //b.SWIFTKod;
                    nalogZaGrupnoPlacanje.Status = GlobalConst.STATUS_NALOGA_ZA_GRUPNO_PLACANJE_KREIRAN;

                    NalogZaGrupnoPlacanjeDB.InsertIntoNalogZaGrupnoPlacanje(nalogZaGrupnoPlacanje);

                    foreach (NalogZaPlacanje nzp in naloziZaPlacanje)
                    {
                        nzp.Status = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_POSLAT;
                        NalogZaPlacanjeDB.UpdateNalogStatus(nzp.IDNalogaZaPlacanje, nzp.Status);
                    }

                    naloziZaGrupnoPlacanje.Add(nalogZaGrupnoPlacanje);
                }
            }

            foreach (NalogZaGrupnoPlacanje nzgp in naloziZaGrupnoPlacanje)
            {
                foreach (StavkaGrupnogPlacanja sgp in nzgp.StavkeGrupnogPlacanja)
                {
                    PromenaStanjaUBanciZaFirmu(sgp.RacunDuznika, (-1) * sgp.Iznos, NapraviStavkuIzStavkeGrupnogPlacanja(sgp));
                }
            }

            ICentralnaBankaService cbsvc = GetCBServiceChannel(GlobalConst.HOST_ADDRESS_CB + GlobalConst.CENTRALNA_BANKA_NAME);

            cbsvc.NalogZaGrupnoPlacanjeSendMessages();
        }