|  | @@ -23,6 +23,7 @@ import { getCsrf } from "../../../actions/security";
 | 
	
		
			
				|  |  |  import ComponentToPrint from "../../../components/Sanksi/SuratBA_A";
 | 
	
		
			
				|  |  |  import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
 | 
	
		
			
				|  |  |  import { updatePddikti } from "../../../actions/sanksi";
 | 
	
		
			
				|  |  | +import { ENV } from "../../../env";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -42,6 +43,7 @@ class ProsesSanksi extends Component {
 | 
	
		
			
				|  |  |  			pelaporan: {},
 | 
	
		
			
				|  |  |  			listSanksi: [],
 | 
	
		
			
				|  |  |  			loading: false,
 | 
	
		
			
				|  |  | +			localSuccess: false
 | 
	
		
			
				|  |  |  		};
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -69,61 +71,78 @@ class ProsesSanksi extends Component {
 | 
	
		
			
				|  |  |  		const { dataSuratBA, dataUpload } = this.state
 | 
	
		
			
				|  |  |  		await inputAutoSave({ data: { PenetapanSanksi: { dataSuratBA, dataUpload, dataPelanggaran: data, activeStep } }, token, id, laporan: true })
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	done = async (e) => {
 | 
	
		
			
				|  |  | -		const getToken = await getCsrf();
 | 
	
		
			
				|  |  | -		const _csrf = getToken.token;
 | 
	
		
			
				|  |  | -		const toastid = toast.loading("Please wait...");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	done = async () => {
 | 
	
		
			
				|  |  |  		this.setState({
 | 
	
		
			
				|  |  |  			loading: true
 | 
	
		
			
				|  |  |  		})
 | 
	
		
			
				|  |  | -		// try {
 | 
	
		
			
				|  |  | -		e.preventDefault();
 | 
	
		
			
				|  |  | -		const { query, token } = this.props;
 | 
	
		
			
				|  |  | -		const { id } = query;
 | 
	
		
			
				|  |  | -		const formdata = new FormData();
 | 
	
		
			
				|  |  | -		formdata.append("no_sanksi", this.state.dataUpload.nomorSanksi);
 | 
	
		
			
				|  |  | -		formdata.append("keterangan", this.state.dataUpload.keterangan);
 | 
	
		
			
				|  |  | -		formdata.append("from_date", this.state.dataUpload.awalsanksi);
 | 
	
		
			
				|  |  | -		formdata.append("to_date", this.state.dataUpload.akhirsanksi);
 | 
	
		
			
				|  |  | -		formdata.append("tanggal_terima_sanksi", this.state.dataUpload.terimaSuratSanksi);
 | 
	
		
			
				|  |  | -		formdata.append("tanggal_akhir_keberatan", this.state.dataUpload.tglAkhirKeberatan);
 | 
	
		
			
				|  |  | -		formdata.append("pelanggaran_id", this.state.dataPelanggaran.data.map((e) => e._id).join());
 | 
	
		
			
				|  |  | -		if (this.state.dataUpload.files && this.state.dataUpload.files.length > 0) {
 | 
	
		
			
				|  |  | -			this.state.dataUpload.files.forEach((e) => {
 | 
	
		
			
				|  |  | -				formdata.append("dokumen", e);
 | 
	
		
			
				|  |  | -			});
 | 
	
		
			
				|  |  | +		const sanksi = await this.tambahSanksi()
 | 
	
		
			
				|  |  | +		if (sanksi && ENV === "production") {
 | 
	
		
			
				|  |  | +			await this.updatePddikti(sanksi.data._id)  //kirim sanksiID ke function updatePDDIKTI
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		if (this.state.dataUpload.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
 | 
	
		
			
				|  |  | -			this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
 | 
	
		
			
				|  |  | -				formdata.append("dokumen_terima_sanksi", e);
 | 
	
		
			
				|  |  | -			});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		await Router.push({
 | 
	
		
			
				|  |  | +			pathname: "/app/sanksi",
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	updatePddikti = async (sanksiId) => {
 | 
	
		
			
				|  |  | +		const getToken = await getCsrf();
 | 
	
		
			
				|  |  | +		const _csrf2 = getToken.token;
 | 
	
		
			
				|  |  | +		const toastPddikti = toast.loading("Updating pddikti...");
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			const { query, token } = this.props;
 | 
	
		
			
				|  |  | +			const { id } = query;
 | 
	
		
			
				|  |  | +			await updatePddikti(token, sanksiId, _csrf2)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			toast.update(toastPddikti, { render: "Success Updating PDDIKTI", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		// if (this.state.dataUpload.filesBeritaAcara && this.state.dataUpload.filesBeritaAcara.length > 0) {
 | 
	
		
			
				|  |  | -		// 	this.state.dataUpload.filesBeritaAcara.forEach((e) => {
 | 
	
		
			
				|  |  | -		// 		formdata.append("berita_acara", e);
 | 
	
		
			
				|  |  | -		// 	});
 | 
	
		
			
				|  |  | -		// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		const sanksi = await createSanksi(token, id, formdata, _csrf);
 | 
	
		
			
				|  |  | -		if (!sanksi) {
 | 
	
		
			
				|  |  | -			toast.update(toastid, { render: "Error", type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			toast.update(toastid, { render: "Success", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | -			// Router.push("/app/perpanjangan-sanksi");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		catch (error) {
 | 
	
		
			
				|  |  | +			toast.update(toastPddikti, { render: ("Error Updating PDDIKTI"), type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		const getToken2 = await getCsrf();
 | 
	
		
			
				|  |  | -		const _csrf2 = getToken2.token;
 | 
	
		
			
				|  |  | -		await updatePddikti(token, sanksi.data._id, _csrf2)
 | 
	
		
			
				|  |  | -		// 	toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | -		// 	console.log("Oncreate")
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		// 	Router.push({
 | 
	
		
			
				|  |  | -		// 		pathname: "/app/sanksi",
 | 
	
		
			
				|  |  | -		// 	});
 | 
	
		
			
				|  |  | -		// } catch (error) {
 | 
	
		
			
				|  |  | -		// 	toast.update(toastid, { render: (error.request.message), type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | -		// }
 | 
	
		
			
				|  |  | -	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	tambahSanksi = async () => {
 | 
	
		
			
				|  |  | +		const getToken = await getCsrf();
 | 
	
		
			
				|  |  | +		const _csrf = getToken.token;
 | 
	
		
			
				|  |  | +		const toastid = toast.loading("Please wait...");
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			const { query, token } = this.props;
 | 
	
		
			
				|  |  | +			const { id } = query;
 | 
	
		
			
				|  |  | +			const formdata = new FormData();
 | 
	
		
			
				|  |  | +			formdata.append("no_sanksi", this.state.dataUpload.nomorSanksi);
 | 
	
		
			
				|  |  | +			formdata.append("keterangan", this.state.dataUpload.keterangan);
 | 
	
		
			
				|  |  | +			formdata.append("from_date", this.state.dataUpload.awalsanksi);
 | 
	
		
			
				|  |  | +			formdata.append("to_date", this.state.dataUpload.akhirsanksi);
 | 
	
		
			
				|  |  | +			formdata.append("tanggal_terima_sanksi", this.state.dataUpload.terimaSuratSanksi);
 | 
	
		
			
				|  |  | +			formdata.append("tanggal_akhir_keberatan", this.state.dataUpload.tglAkhirKeberatan);
 | 
	
		
			
				|  |  | +			formdata.append("pelanggaran_id", this.state.dataPelanggaran.data.map((e) => e._id).join());
 | 
	
		
			
				|  |  | +			if (this.state.dataUpload.files && this.state.dataUpload.files.length > 0) {
 | 
	
		
			
				|  |  | +				this.state.dataUpload.files.forEach((e) => {
 | 
	
		
			
				|  |  | +					formdata.append("dokumen", e);
 | 
	
		
			
				|  |  | +				});
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (this.state.dataUpload.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
 | 
	
		
			
				|  |  | +				this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
 | 
	
		
			
				|  |  | +					formdata.append("dokumen_terima_sanksi", e);
 | 
	
		
			
				|  |  | +				});
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			const sanksi = await createSanksi(token, id, formdata, _csrf)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			toast.update(toastid, { render: "Success Updating Local", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +			return sanksi
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		catch (error) {
 | 
	
		
			
				|  |  | +			toast.update(toastid, { render: error.response.data.message || error.message, type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +			return null
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	handleDelegasi = async (data) => {
 | 
	
	
		
			
				|  | @@ -429,7 +448,9 @@ class ProsesSanksi extends Component {
 | 
	
		
			
				|  |  |  												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("5")}>
 | 
	
		
			
				|  |  |  													<span className="font-color-white">Previous</span>
 | 
	
		
			
				|  |  |  												</Button>
 | 
	
		
			
				|  |  | -												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.done} disabled={this.state.loading}>
 | 
	
		
			
				|  |  | +												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.done}
 | 
	
		
			
				|  |  | +													disabled={this.state.loading}
 | 
	
		
			
				|  |  | +												>
 | 
	
		
			
				|  |  |  													<span className="font-color-white">Done</span>
 | 
	
		
			
				|  |  |  												</Button>
 | 
	
		
			
				|  |  |  											</div>
 |