private void LogIn(string UserID, string SecLevel, bool GantiPass) { //Simpan dulu tanggal TERAKHIR LOGIN (tidak termasuk kejadian login detik ini) DateTime TglLogin = Db.SingleTime("SELECT TglLogin FROM USERNAME WHERE UserID = '" + UserID + "'"); Session["LastLogin"] = Cf.IndoWeek(TglLogin) + ", " + Cf.Date(TglLogin); Db.Execute("EXEC spAppLogin " + " '" + UserID + "'" + ",'" + Act.IP + "'" + ",'" + Session.SessionID + "'" ); //Init Session Act.UserID = UserID; Act.SecLevel = SecLevel; if (GantiPass) { Response.Redirect("GantiPass.aspx?login=1"); } else { Response.Redirect("Gateway.aspx"); } }
protected void Page_Load(object sender, EventArgs e) { Db.Execute("UPDATE ISC064_MARKETINGJUAL..MS_TAGIHAN SET Denda = 0"); decimal NilaiP = 0; DataTable rs = Db.Rs(" SELECT" + " ISC064_MARKETINGJUAL..MS_TAGIHAN.NoKontrak " + ",NoUrut" + ",Project" + ",TglJT" + ",NilaiTagihan" + ",NilaiTagihan -" + "(" + " SELECT ISNULL(SUM(NilaiPelunasan),0) FROM ISC064_MARKETINGJUAL..MS_PELUNASAN" + " WHERE NoKontrak = ISC064_MARKETINGJUAL..MS_TAGIHAN.NoKontrak AND NoTagihan = ISC064_MARKETINGJUAL..MS_TAGIHAN.NoUrut AND ISC064_MARKETINGJUAL..MS_PELUNASAN.SudahCair=1" + ")" + " AS SisaTagihan" + ", CASE WHEN TglBatal Is NULL" + " THEN DATEDIFF(d,TglJT, GETDATE())" + " ELSE" + " DATEDIFF(d,TglJT, TglBatal)" + " End AS Telat" + ",PutihDenda" + " FROM ISC064_MARKETINGJUAL..MS_TAGIHAN" + " INNER JOIN ISC064_MARKETINGJUAL..MS_KONTRAK ON ISC064_MARKETINGJUAL..MS_TAGIHAN.NoKontrak = ISC064_MARKETINGJUAL..MS_KONTRAK.NoKontrak WHERE ISC064_MARKETINGJUAL..MS_KONTRAK.Project IN (" + Act.ProjectListSql + ")"); for (int i = 0; i < rs.Rows.Count; i++) { string ParamID1 = "RumusDenda" + rs.Rows[i]["Project"]; string ParamID2 = "RumusDenda2" + rs.Rows[i]["Project"]; string ParamID3 = "BerlakuDenda" + rs.Rows[i]["Project"]; string ParamID4 = "GracePeriodDenda" + rs.Rows[i]["Project"]; decimal Rumus1 = Db.SingleDecimal("SELECT ISNULL(Value, 0) FROM " + Mi.DbPrefix + "SECURITY..REF_PARAM WHERE ParamID = '" + ParamID1 + "'"); decimal Rumus2 = Db.SingleDecimal("SELECT ISNULL(Value, 0) FROM " + Mi.DbPrefix + "SECURITY..REF_PARAM WHERE ParamID = '" + ParamID2 + "'"); decimal Berlaku = Db.SingleDecimal("SELECT ISNULL(Value, 0) FROM " + Mi.DbPrefix + "SECURITY..REF_PARAM WHERE ParamID = '" + ParamID3 + "'"); decimal GracePeriod = Db.SingleDecimal("SELECT ISNULL(Value, 0) FROM " + Mi.DbPrefix + "SECURITY..REF_PARAM WHERE ParamID = '" + ParamID4 + "'"); string NoKontrak = rs.Rows[i]["NoKontrak"].ToString(); int NoUrut = Convert.ToInt16(rs.Rows[i]["NoUrut"]); NilaiP = Db.SingleDecimal("SELECT ISNULL(SUM(NilaiPelunasan),0) FROM ISC064_MARKETINGJUAL..MS_PELUNASAN a " + " INNER JOIN ISC064_MARKETINGJUAL..MS_TAGIHAN b ON a.NoKontrak = b.NoKontrak AND a.NoTagihan = b.NoUrut" + " WHERE a.NoKontrak = '" + NoKontrak + "' AND a.NoTagihan = '" + NoUrut + "' AND SudahCair = 1"); DateTime TglJT = Convert.ToDateTime(rs.Rows[i]["TglJT"]); decimal SisaTagihan = Convert.ToDecimal(rs.Rows[i]["SisaTagihan"]); DateTime MaxTglPelunasan = Db.SingleTime("Select ISNULL(MAX(TglPelunasan),0) From " + Mi.DbPrefix + "MARKETINGJUAL..MS_PELUNASAN WHERE NoKontrak = '" + NoKontrak + "'"); int ada = Db.SingleInteger("SELECT Count(*) FROM ISC064_MARKETINGJUAL..MS_Pelunasan WHERE NoKontrak = '" + NoKontrak + "' AND NoTagihan = " + NoUrut); DateTime TLunas = Convert.ToDateTime(DateTime.Now); decimal A = 0; if (ada > 0) { A = (Decimal)rs.Rows[i]["NilaiTagihan"]; TLunas = Db.SingleTime("Select TgLPelunasan from ISC064_marketingjual..ms_pelunasan where nokontrak = '" + NoKontrak + "' and NoTagihan = " + NoUrut); } else { A = (decimal)rs.Rows[i]["NilaiTagihan"]; } DateTime TJT = Convert.ToDateTime(rs.Rows[i]["TglJT"]); TimeSpan Spanhari = TLunas.Subtract(TJT); //mengetahui jarak antara tgl pelunasan dan jatuh tempo decimal PutihDenda = Convert.ToDecimal(rs.Rows[i]["PutihDenda"]); decimal denda = 0; decimal dendapelunasan = 0; //baru decimal dendareal = 0; double num2 = Convert.ToDouble(Spanhari.Days); if (num2 <= 0) { num2 = 0; } if ((decimal)num2 >= GracePeriod && ((decimal)num2 - Berlaku) > 0) { denda = (SisaTagihan / Rumus2) * (Rumus1 * ((decimal)num2 - Berlaku)); } decimal NilaiPelunasan = 0, telatPelunasan = 0; DataTable rsDetil = Db.Rs("SELECT NilaiPelunasan, DATEDIFF(d, '" + TglJT + "', TglPelunasan) AS TelatLunas" + " FROM ISC064_MARKETINGJUAL..MS_PELUNASAN WHERE NoKontrak = '" + NoKontrak + "' AND NoTagihan = " + NoUrut + " AND SudahCair = 1"); for (int j = 0; j < rsDetil.Rows.Count; j++) { NilaiPelunasan = Convert.ToDecimal(rsDetil.Rows[j]["NilaiPelunasan"]); telatPelunasan = Convert.ToDecimal(rsDetil.Rows[j]["TelatLunas"]); if (telatPelunasan < 0) { telatPelunasan = 0; } double num3 = Convert.ToDouble(1.001); double num4 = Convert.ToDouble(telatPelunasan); if ((decimal)num4 >= GracePeriod && ((decimal)num4 - Berlaku) > 0) { dendapelunasan += (NilaiPelunasan / Rumus2) * (Rumus1 * ((decimal)num4 - Berlaku)); } dendareal = denda + dendapelunasan; if (dendareal <= 0) { dendareal = 0; } } //kondisi baru if (SisaTagihan > 0) { DateTime HariIni = DateTime.Now; TimeSpan Spanhari2 = HariIni.Subtract(TJT); double num5 = Convert.ToDouble(1.001); double num6 = Convert.ToDouble(Spanhari2.Days); if (num6 <= 0) { num6 = 0; } if ((decimal)num6 >= GracePeriod && ((decimal)num6 - Berlaku) > 0) { dendareal += (SisaTagihan / Rumus2) * (Rumus1 * ((decimal)num6 - Berlaku)); } if (dendareal <= 0) { dendareal = 0; } } if (PutihDenda == 1) { dendareal = 0; } Db.Rs("UPDATE ISC064_MARKETINGJUAL..MS_TAGIHAN SET Denda = " + dendareal + " WHERE NoKontrak = '" + NoKontrak + "'" + " AND NoUrut = " + NoUrut + " AND KPR = 0" + " AND Tipe <> 'ADM'" ); } }