Exemple #1
0
        public static NalogZaPlacanje generisiNZP(Firma sourceFirma, bool hitno, Faktura faktura)
        {
            NalogZaPlacanje nzp = new NalogZaPlacanje();

            nzp.Hitno              = hitno;
            nzp.DatumNaloga        = DateTime.Now;
            nzp.DatumValute        = DateTime.Now;
            nzp.Duznik             = faktura.NazivKupca;
            nzp.IDPoruke           = faktura.IDPoruke;
            nzp.Iznos              = faktura.IznosZaUplatu;
            nzp.ModelOdobrenja     = 97;
            nzp.ModelZaduzenja     = 97;
            nzp.OznakaValute       = faktura.OznakaValute;
            nzp.PozivNaBrOdobrenja = 123;
            nzp.PozivNaBrZaduzenja = "123";
            nzp.Primalac           = faktura.NazivDobavljaca;
            nzp.RacunPoverioca     = faktura.UplataNaRacun;
            nzp.RacunDuznika       = sourceFirma.Racun.ToString();
            nzp.Status             = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_KREIRAN;
            nzp.SvrhaPlacanja      = "dug";

            /*if (nzp.Iznos > 250000)
             *  nzp.Status = "1";
             * else
             *  nzp.Status = ""*/

            Console.WriteLine(nzp);
            return(nzp);
        }
        /// <summary>
        /// Iz naloga izvlaci sve bitne podatke za sklapanje rtgs naloga
        /// </summary>
        /// <param name="nzp"></param>
        /// <returns></returns>
        private RTGSNalog NapraviRTGSIzNaloga(NalogZaPlacanje nzp)
        {
            string imeFirmeKojaPlaca = nzp.Duznik;
            string imeFirmeKojaPrima = nzp.Primalac;

            Banka bankaFirmeKojaPlaca = KombinacijeDB.GetBankByFirmName(imeFirmeKojaPlaca);
            Banka bankaFirmeKojaPrima = KombinacijeDB.GetBankByFirmName(imeFirmeKojaPrima);

            RTGSNalog rtgs = new RTGSNalog();

            rtgs.IDPoruke                      = nzp.IDPoruke;
            rtgs.SWIFTBankaDuznika             = bankaFirmeKojaPlaca.SWIFTKod;
            rtgs.ObracunskiRacunBankeDuznika   = bankaFirmeKojaPlaca.ObracunskiRacun.ToString();
            rtgs.SWIFTBankaPoverioca           = bankaFirmeKojaPrima.SWIFTKod;
            rtgs.ObracunskiRacunBankePoverioca = bankaFirmeKojaPrima.ObracunskiRacun.ToString();
            rtgs.Duznik             = imeFirmeKojaPlaca;
            rtgs.SvrhaPlacanja      = nzp.SvrhaPlacanja;
            rtgs.Primalac           = imeFirmeKojaPrima;
            rtgs.DatumNaloga        = DateTime.Now;
            rtgs.DatumValute        = DateTime.Now;
            rtgs.RacunDuznika       = nzp.RacunDuznika;
            rtgs.ModelZaduzenja     = nzp.ModelZaduzenja;
            rtgs.PozivNaBrZaduzenja = nzp.PozivNaBrZaduzenja;
            rtgs.RacunPoverioca     = nzp.RacunPoverioca;
            rtgs.ModelOdobrenja     = nzp.ModelOdobrenja;
            rtgs.PozivNaBrOdobrenja = nzp.PozivNaBrOdobrenja.ToString("F0");
            rtgs.Iznos       = nzp.Iznos;
            rtgs.SifraValute = nzp.OznakaValute;

            return(rtgs);
        }
        public static List <NalogZaPlacanje> GetNalogZaPlacanjeByStatusAndBanka(string status, long idBanke)
        {
            List <NalogZaPlacanje> nalozi = new List <NalogZaPlacanje>();

            using (SqlConnection conn = MySQLUtils.NapraviBankaConn())
            {
                conn.Open();
                string sql = "SELECT * FROM nalogzaplacanje nzp left join racun r on nzp.racunduznika=r.idracuna WHERE status = @status and r.idbanke = @idBanke";
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddWithValue("@status", status);
                    cmd.Parameters.AddWithValue("@idBanke", idBanke);
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        NalogZaPlacanje naloug = GetFromReader(reader);
                        nalozi.Add(naloug);
                    }
                    reader.Close();
                }
                conn.Close();
            }

            return(nalozi);
        }
Exemple #4
0
        public static void NapraviNalogZaPrenos(Firma sourceFirma, FirmaClient client)
        {
            PrikaziSveFakture(sourceFirma, client, GlobalConst.STATUS_FAKTURE_POSLATA);

            while (true)
            {
                Console.WriteLine("Izaberi fakturu od koje hoces da napravis nalog za prenos(Q za izlaz):");
                string id_string = Console.ReadLine();
                if (id_string == "Q" || id_string == "q")
                {
                    return;
                }
                try
                {
                    int     id   = Int32.Parse(id_string);
                    Faktura fakt = FakturaDB.GetFaktura(id);
                    if (fakt != null)
                    {
                        while (true)
                        {
                            Console.WriteLine("Da li je hitno? (y/n):");
                            string odgovor = Console.ReadLine();
                            if (odgovor == "Q" || odgovor == "q")
                            {
                                return;
                            }
                            if (odgovor == "y" || odgovor == "Y" || odgovor == "n" || odgovor == "N")
                            {
                                bool hitno;
                                if (odgovor == "y" || odgovor == "Y")
                                {
                                    hitno = true;
                                }
                                else
                                {
                                    hitno = false;
                                }
                                NalogZaPlacanje nzp = generisiNZP(sourceFirma, hitno, fakt);

                                client.NapraviNalogZaPrenosK(nzp);

                                client.PromeniStatusFakture(fakt.IDFakture, GlobalConst.STATUS_FAKTURE_PLACENA);
                                break;
                            }
                        }

                        break;
                    }
                }
                catch (Exception e)
                {
                    //pass
                }
            }
        }
        public static NalogZaPlacanje GetNalogZaPlacanjeById(int idNaloga)
        {
            NalogZaPlacanje stavka = new NalogZaPlacanje();

            using (SqlConnection conn = MySQLUtils.NapraviBankaConn())
            {
                conn.Open();
                string sql = "SELECT * FROM nalogzaplacanje WHERE idnalogazaplacanje = @idnalogazaplacanje";
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddWithValue("@idnalogazaplacanje", idNaloga);
                    SqlDataReader reader = cmd.ExecuteReader();
                    reader.Read();
                    stavka = GetFromReader(reader);
                    reader.Close();
                }
                conn.Close();
            }
            return(stavka);
        }
        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);
            }
        }
        public static List <NalogZaPlacanje> GetAllNalogZaPlacanje()
        {
            List <NalogZaPlacanje> nalozi = new List <NalogZaPlacanje>();

            using (SqlConnection conn = MySQLUtils.NapraviBankaConn())
            {
                conn.Open();
                string sql = "SELECT * FROM nalogzaplacanje";
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        NalogZaPlacanje nalog = GetFromReader(reader);
                        nalozi.Add(nalog);
                    }
                    reader.Close();
                }
                conn.Close();
            }
            return(nalozi);
        }
        /// <summary>
        /// pogodi.
        /// </summary>
        /// <param name="rtgs"></param>
        /// <returns></returns>
        private NalogZaPlacanje NapraviNalogZaPlacanjeIzRTGS(RTGSNalog rtgs)
        {
            NalogZaPlacanje placanje = new NalogZaPlacanje();

            placanje.DatumNaloga        = rtgs.DatumNaloga;
            placanje.DatumValute        = rtgs.DatumValute;
            placanje.Duznik             = rtgs.Duznik;
            placanje.Hitno              = false;
            placanje.IDPoruke           = rtgs.IDPoruke;
            placanje.Iznos              = rtgs.Iznos;
            placanje.ModelOdobrenja     = (int)rtgs.ModelOdobrenja;
            placanje.ModelZaduzenja     = (int)rtgs.ModelZaduzenja;
            placanje.OznakaValute       = rtgs.SifraValute;
            placanje.PozivNaBrOdobrenja = Double.Parse(rtgs.PozivNaBrOdobrenja);
            placanje.PozivNaBrZaduzenja = rtgs.PozivNaBrZaduzenja;
            placanje.Primalac           = rtgs.Primalac;
            placanje.RacunDuznika       = rtgs.RacunDuznika;
            placanje.RacunPoverioca     = rtgs.RacunPoverioca;
            placanje.Status             = GlobalConst.STATUS_NALOGA_ZA_PLACANJE_KREIRAN;
            placanje.SvrhaPlacanja      = rtgs.SvrhaPlacanja;

            return(placanje);
        }
        /// <summary>
        /// proveri dal ga imas sa lista.size() == 0 ili lista isempty
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        public static List <NalogZaPlacanje> GetNalogByStatus(string status)
        {
            List <NalogZaPlacanje> nalozi = new List <NalogZaPlacanje>();

            using (SqlConnection conn = MySQLUtils.NapraviBankaConn())
            {
                conn.Open();
                string sql = "SELECT * FROM nalogzaplacanje WHERE status = @status";
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddWithValue("@status", status);
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        NalogZaPlacanje naloug = GetFromReader(reader);
                        nalozi.Add(naloug);
                    }
                    reader.Close();
                }
                conn.Close();
            }

            return(nalozi);
        }
        private static NalogZaPlacanje GetFromReader(SqlDataReader reader)
        {
            NalogZaPlacanje nalogZaPlacanje = new NalogZaPlacanje();

            nalogZaPlacanje.IDNalogaZaPlacanje = (int)reader["idnalogazaplacanje"];
            nalogZaPlacanje.IDPoruke           = (string)reader["idporuke"];
            nalogZaPlacanje.Duznik             = (string)reader["duznik"];
            nalogZaPlacanje.SvrhaPlacanja      = (string)reader["svrhaplacanja"];
            nalogZaPlacanje.Primalac           = (string)reader["primalac"];
            nalogZaPlacanje.DatumNaloga        = (DateTime)reader["datumnaloga"];
            nalogZaPlacanje.DatumValute        = (DateTime)reader["datumvalute"];
            nalogZaPlacanje.RacunDuznika       = (string)reader["racunduznika"];
            nalogZaPlacanje.ModelZaduzenja     = (int)(decimal)reader["modelzaduzenja"];
            nalogZaPlacanje.PozivNaBrZaduzenja = (string)reader["pozivnabrzaduzenja"];
            nalogZaPlacanje.RacunPoverioca     = (string)reader["racunpoverioca"];
            nalogZaPlacanje.ModelOdobrenja     = (int)(decimal)reader["modelodobrenja"];
            nalogZaPlacanje.PozivNaBrOdobrenja = (double)(decimal)reader["pozivnabrodobrenja"];
            nalogZaPlacanje.Iznos        = (double)(decimal)reader["iznos"];
            nalogZaPlacanje.OznakaValute = (string)reader["oznakavalute"];
            nalogZaPlacanje.Hitno        = ((string)reader["hitno"] == "0" ? false : true);                                       //(bool)reader["hitno"];
            nalogZaPlacanje.Status       = (string)reader["status"];

            return(nalogZaPlacanje);
        }
Exemple #11
0
        public void NapraviNalogZaPrenosK(NalogZaPlacanje nzp)
        {
            IBankaService bs = GetIBankaServiceChannel(XWS.Shared.GlobalConst.HOST_ADDRESS_BANKA + XWS.Shared.GlobalConst.BANKE_SERVICE_NAME);

            bs.NapraviNalogZaPrenos(nzp);
        }
        public static void InsertNalogZaPlacanje(NalogZaPlacanje nalogZaPlacanje)
        {
            using (SqlConnection conn = MySQLUtils.NapraviBankaConn())
            {
                conn.Open();
                string sql = @"INSERT INTO [dbo].[nalogzaplacanje]
													   ([idporuke]
													   ,[duznik]
													   ,[svrhaplacanja]
													   ,[primalac]
													   ,[datumnaloga]
													   ,[datumvalute]
													   ,[racunduznika]
													   ,[modelzaduzenja]
													   ,[pozivnabrzaduzenja]
													   ,[racunpoverioca]
													   ,[modelodobrenja]
													   ,[pozivnabrodobrenja]
													   ,[iznos]
													   ,[oznakavalute]
													   ,[hitno]
													   ,[status])
												 VALUES
													   (@idporuke
													   ,@duznik
													   ,@svrhaplacanja
													   ,@primalac
													   ,@datumnaloga
													   ,@datumvalute
													   ,@racunduznika
													   ,@modelzaduzenja
													   ,@pozivnabrzaduzenja
													   ,@racunpoverioca
													   ,@modelodobrenja
													   ,@pozivnabrodobrenja
													   ,@iznos
													   ,@oznakavalute
													   ,@hitno
													   ,@status)"                                                    ;
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddWithValue("@idporuke", nalogZaPlacanje.IDPoruke);
                    cmd.Parameters.AddWithValue("@duznik", nalogZaPlacanje.Duznik);
                    cmd.Parameters.AddWithValue("@svrhaplacanja", nalogZaPlacanje.SvrhaPlacanja);
                    cmd.Parameters.AddWithValue("@primalac", nalogZaPlacanje.Primalac);
                    cmd.Parameters.AddWithValue("@datumnaloga", nalogZaPlacanje.DatumNaloga);
                    cmd.Parameters.AddWithValue("@datumvalute", nalogZaPlacanje.DatumValute);
                    cmd.Parameters.AddWithValue("@racunduznika", nalogZaPlacanje.RacunDuznika);
                    cmd.Parameters.AddWithValue("@modelzaduzenja", nalogZaPlacanje.ModelZaduzenja);
                    cmd.Parameters.AddWithValue("@pozivnabrzaduzenja", nalogZaPlacanje.PozivNaBrZaduzenja);
                    cmd.Parameters.AddWithValue("@racunpoverioca", nalogZaPlacanje.RacunPoverioca);
                    cmd.Parameters.AddWithValue("@modelodobrenja", nalogZaPlacanje.ModelOdobrenja);
                    cmd.Parameters.AddWithValue("@pozivnabrodobrenja", nalogZaPlacanje.PozivNaBrOdobrenja);
                    cmd.Parameters.AddWithValue("@iznos", nalogZaPlacanje.Iznos);
                    cmd.Parameters.AddWithValue("@oznakavalute", nalogZaPlacanje.OznakaValute);
                    cmd.Parameters.AddWithValue("@hitno", nalogZaPlacanje.Hitno);
                    cmd.Parameters.AddWithValue("@status", nalogZaPlacanje.Status);

                    cmd.ExecuteNonQuery();
                }
                conn.Close();
            }
        }
Exemple #13
0
 public void NapraviNalogZaPrenosK(NalogZaPlacanje nzp)
 {
     Channel.NapraviNalogZaPrenosK(nzp);
 }