示例#1
0
 public SaldoStok cari(Produk p, String tahun, String bulan) {
   return (SaldoStok)
       sessionFactory
           .getCurrentSession()
           .createQuery(
               "from SaldoStok s "
                   + "where s.bulan=:bulan "
                   + "and s.tahun=:tahun "
                   + "and s.produk.id = :id ")
           .setString("tahun", tahun)
           .setString("bulan", bulan)
           .setString("id", p.getId())
           .uniqueResult();
 }
示例#2
0
 public SaldoStok cari(Produk p, Date tanggal, Cabang cabang) {
   DateTime dateTime = new DateTime();
   String bulan = StringUtils.bulanDuaDigit(dateTime.toDate());
   String tahun = String.valueOf(dateTime.getYear());
   SaldoStok s = cari(p, tahun, bulan);
   if (s == null) {
     // cari satu bulan sebelumnya
     bulan = StringUtils.bulanDuaDigit(dateTime.minusMonths(1).toDate());
     SaldoStok bulanSebelumnya = cari(p, tahun, bulan);
     if (bulanSebelumnya == null) {
       List<SaldoStok> saldoStoks =
           sessionFactory
               .getCurrentSession()
               .createQuery(
                   "from SaldoStok s "
                       + "where s.produk.id=:id "
                       + "order by s.tahun desc, s.bulan desc")
               .setString("id", p.getId())
               .list();
       if (!saldoStoks.isEmpty()) {
         bulanSebelumnya = saldoStoks.get(0);
       }
     }
     s = new SaldoStok();
     s.setId(
         runningNumberDao.ambilBerikutnyaDanSimpan(
             TransaksiRunningNumberEnum.SALDO_STOK, tanggal, cabang.getId()));
     s.setProduk(p);
     if (bulanSebelumnya != null) {
       s.setSaldoAwal(
           bulanSebelumnya.getBeli()
               + bulanSebelumnya.getReturJual()
               - bulanSebelumnya.getJual()
               - bulanSebelumnya.getReturBeli()
               + bulanSebelumnya.getSaldoAwal());
     }
     simpan(s);
   }
   return s;
 }