Просмотр исходного кода

- add form add new 'pracownicy' and 'kjontrahent'

dariusz.andryskowski 7 лет назад
Родитель
Сommit
d25a7c460a
2 измененных файлов с 305 добавлено и 6 удалено
  1. 108 5
      tools/Bocian.php
  2. 197 1
      tools/Bocian.php.view.js

+ 108 - 5
tools/Bocian.php

@@ -190,8 +190,10 @@ TODO: dodać możliwość wysyłania maila używajac mail()
 			'URL_FETCH_KONTRAHENCI' => $this->getLink('fetchKontrahenciAjax'),
 			'URL_FETCH_KONTRAHENCI_IDS_AJAX' => $this->getLink('fetchKontrahenciIdsAjax'),
 			'URL_CREATE_PRACOWNICY_GROUP' => $this->getLink('createPracownicyGroupAjax'),
-			'URL_CREATE_KONTRAHENCIS_GROUP' => $this->getLink('createKontrahenciGroupAjax'),
+			'URL_CREATE_KONTRAHENCI_GROUP' => $this->getLink('createKontrahenciGroupAjax'),
 			'URL_ADD_PRACOWNICY_TO_GROUP' => $this->getLink('addPracownicyToGroupAjax'),
+			'URL_CREATE_PRACOWNICY' => $this->getLink('createPracownikAjax'),
+			'URL_CREATE_KONTRAHENCI' => $this->getLink('createKontrahentAjax'),
 			'URL_ADD_KONTRAHENCI_TO_GROUP' => $this->getLink('addKontrahenciToGroupAjax'),
 			'URL_FETCH_GROUP_PRACOWNICY' => $this->getLink('fetchGroupPracownicyAjax'),
 			'URL_FETCH_GROUP_KONTRAHENCI' => $this->getLink('fetchGroupKontrahenciAjax'),
@@ -219,6 +221,107 @@ TODO: dodać możliwość wysyłania maila używajac mail()
 		UI::dol();
 	}
 
+
+	/**
+	*  Dodanie nowego pracownika
+	*/
+	public function createPracownikAjaxAction() {
+		 Response::sendTryCatchJson(array($this, 'createPracownikAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em
+	}
+	public function createPracownikAjax($args) {
+		$personName = V::post('personName', '', $args);
+		$personSurname = V::post('$personSurname', '', $args);
+		$personNip = V::post('personNip', '', $args);
+		$personPesel = V::post('personPesel', '', $args);
+		$personRegon = V::post('personRegon', '', $args);
+
+		// validate
+		if (!$imiona) throw new Exception("Nie wpisano imienia");
+		if (!$nazwisko) throw new Exception("Nie wpisano  nazwiska");
+
+
+		$idPracownik = DB::getPDO()->insert('BI_audit_ENERGA_PRACOWNICY', [
+			'imiona' => $personName,
+			'nazwisko' => $personSurname,
+			'nip' => $personNip,
+			'pesel' => $personPesel,
+			'regon' => $personRegon,
+			'A_RECORD_CREATE_AUTHOR' => User::getLogin(),
+			'A_RECORD_CREATE_DATE' => 'NOW()',
+			'NAZWA' => $nazwa,
+			'ID_USER' => User::getID()
+		]);
+
+		return [
+			'msg' => "Dodano osobę",
+			'type' => "success",
+		];
+	}
+
+	/**
+	*  Dodanie nowego kontrahenta
+	*/
+	public function createKontrahentAjaxAction() {
+		 Response::sendTryCatchJson(array($this, 'createKontrahentAjax'), $args = 'JSON_FROM_REQUEST_BODY'); // użyj tej wersji jeśli chcesz wysyłać z przelgądarki JSON-a post-em
+	}
+	public function createKontrahentAjax($args) {
+		$companyFullName = V::post('companyFullName', '', $args);
+		$companyShortName = V::post('$companyShortName', '', $args);
+		$companyNameGroup = V::post('companyNameGroup', '', $args);
+		$companyKrs = V::post('companyKrs', '', $args);
+		$companyNip = V::post('companyNip', '', $args);
+		$companyPesel = V::post('companyPesel', '', $args);
+		$companyFax = V::post('companyFax', '', $args);
+		$companyTelefon = V::post('companyTelefon', '', $args);
+		$companyMail = V::post('companyMail', '', $args);
+		$companyStreet = V::post('companyStreet', '', $args);
+		$companyNumberBuilding = V::post('companyNumberBuilding', '', $args);
+		$companyNumberLocal = V::post('companyNumberLocal', '', $args);
+		$companyPostCode = V::post('companyPostCode', '', $args);
+		$companyPlace = V::post('companyPlace', '', $args);
+		$companyCountry = V::post('companyCountry', '', $args);
+		$companyTypeCompany = V::post('companyTypeCompany', '', $args);
+		$companyTitleDocument = V::post('companyTitleDocument', '', $args);
+		$companyDesc = V::post('companyDesc', '', $args);
+
+		// validate
+		if (!$imiona) throw new Exception("Nie wpisano imienia");
+		if (!$nazwisko) throw new Exception("Nie wpisano  nazwiska");
+
+
+		$idKontrahent = DB::getPDO()->insert('BI_audit_ENERGA_RUM_KONTRAHENCI', [
+			'Pelna_nazwa_kontrahenta' => $companyFullName,
+			'Skrocona_Nazwa_Kontrahenta' => $companyShortName,
+			'Nazwa_grupy_kapitalowej' => $companyNameGroup,
+			'KRS' => $companyKrs,
+			'NIP' => $companyNip,
+			'PESEL' => $companyPesel,
+			'Fax' => $companyFax,
+			'Telefon' => $companyTelefon,
+			'Mail' => $companyMail,
+			'Ulica' => $companyStreet,
+			'Numer_budynku' => $companyNumberBuilding,
+			'Numer_mieszkania_lokalu' => $companyNumberLocal,
+			'Kod_pocztowy' => $companyPostCode,
+			'Miejscowosc' => $companyPlace,
+			'Kraj' => $companyCountry,
+			'Typ_kontrahenta' => $companyTypeCompany,
+			'Tytul_dokumentu' => $companyTitleDocument,
+			'uwagi' => $companyDesc,
+
+			'A_RECORD_CREATE_AUTHOR' => User::getLogin(),
+			'A_RECORD_CREATE_DATE' => 'NOW()',
+			'NAZWA' => $nazwa,
+			'ID_USER' => User::getID()
+		]);
+
+		return [
+			'msg' => "Dodano podmiot/kontrahenta",
+			'type' => "success",
+		];
+	}
+
+
 /**
  * Funkcja ajax do odebrania danych z przesłanego pliku CSV do parsowania
  */
@@ -1576,8 +1679,8 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 
 					$csvExampleKontrahenci = Request::getPathUri() . 'projects/bocian/theme/assets/file_example/kontrahenci_example.zip';
 					$formAddNewData ='
-					<li><a  title="IMPORT KONTRAHENCI" onClick="showViewUploadFile(event, \'Import podmiotów/kontrahentów\', \'kontrahenci\', \'no\', \''.$csvExampleKontrahenci.'\' )" class="btn btn-info">IMPORT KONTRAHENCI</a></li>
-					<!--<li><a href="#" title="DODAJ KONTRAHENCI" class="btn btn-info">+ DODAJ PODMIOT</a></li>-->'; //todo: dodać obsługe doddawania kontrahentow
+					<li><a title="IMPORT KONTRAHENCI" onClick="showViewUploadFile(event, \'Import podmiotów/kontrahentów\', \'kontrahenci\', \'no\', \''.$csvExampleKontrahenci.'\' )" class="btn btn-info">IMPORT KONTRAHENCI</a></li>
+					<li><a title="DODAJ KONTRAHENCI" onClick="createKontrahentAjax(event)" class="btn btn-info">+ DODAJ PODMIOT</a></li>'; //todo: dodać obsługe doddawania kontrahentow
 
 					$buttonMoveToGroup = '<a title="DODAJ WYBRANE DO GRUPY" onClick="addKontrahenciToGroup(event)" class="btn btn-info">DODAJ WYBRANE DO GRUPY</a>';
 					$buttonMoveToGroup .= '<a title="DODAJ WSZYSTKIE DO GRUPY" onClick="addKontrahenciAllToGroup(event)" class="btn btn-info" style="margin-left:12px">DODAJ WSZYSTKIE DO GRUPY</a>';
@@ -1624,8 +1727,8 @@ public function showPowiazaniaEnergaRumKontrahenciPowiazania($items) {
 
 					$csvExamplePracownicy = Request::getPathUri() . 'projects/bocian/theme/assets/file_example/pracownicy_example.zip';
 					$formAddNewData ='
-					<li><a  title="IMPORT PRACOWNIKÓW" onClick="showViewUploadFile(event, \'Import osób\', \'pracownicy\', \'yes\', \''.$csvExamplePracownicy.'\'  )" class="btn btn-info">IMPORT PRACOWNIKÓW</a></li>
-					<!--<li><a href="#" title="DODAJ PRACOWNIKÓW" class="btn btn-info" >+ DODAJ OSOBĘ</a></li>-->'; //todo: dodać obsługe doddawania pracownikow
+					<li><a title="IMPORT PRACOWNIKÓW" onClick="showViewUploadFile(event, \'Import osób\', \'pracownicy\', \'yes\', \''.$csvExamplePracownicy.'\'  )" class="btn btn-info">IMPORT PRACOWNIKÓW</a></li>
+					<li><a title="DODAJ PRACOWNIKÓW" onClick="createPracownikAjax(event)" class="btn btn-info" >+ DODAJ OSOBĘ</a></li>'; //todo: dodać obsługe doddawania pracownikow
 
 					$buttonMoveToGroup = '<a title="DODAJ WYBRANE DO GRUPY" onClick="addPracownikToGroup(event)" class="btn btn-info">DODAJ WYBRANE DO GRUPY</a>';
 					$buttonMoveToGroup .= '<a title="DODAJ WSZYSTKIE DO GRUPY" onClick="addPracownikAllToGroup(event)" class="btn btn-info" style="margin-left:12px">DODAJ WSZYSTKIE DO GRUPY</a>';

+ 197 - 1
tools/Bocian.php.view.js

@@ -460,6 +460,201 @@ function generateBiAuditRaport(event) {
 		}
 }
 
+/**
+* Dodaj nowego pracownika
+*/
+function createPracownikAjax(event) {
+	event.preventDefault();
+
+	swal({
+	  title: 'Dodaj osobę',
+	  showCancelButton: true,
+	  confirmButtonText: 'Zapisz',
+	  showLoaderOnConfirm: true,
+	  html:
+		'<div class="form-group">'+
+    '<input class="form-control required" id="personName" placeholder="Imię" >' +
+    '<input class="form-control required" id="personSurname" placeholder="Nazwisko">'+
+		'<input class="form-control required" id="personNip" placeholder="NIP">'+
+		'<input class="form-control required" id="personPesel" placeholder="PESEL">'+
+		'<input class="form-control required" id="personRegon" placeholder="REGON">'+
+		'</div>',
+	   preConfirm: () => {
+	    return new Promise(function (resolve, reject) {
+
+				// data from form
+				var personName = $('#personName').val();
+				var personSurname = $('#personSurname').val();
+				var personNip = $('#personNip').val();
+				var personPesel = $('#personPesel').val();
+				var personRegon = $('#personRegon').val();
+
+				//validate data from input
+				if (!personName) reject('Proszę podać imię');
+				if (!personSurname) reject('Proszę podać nazwisko');
+
+				window.fetch(URL_CREATE_PRACOWNICY, {
+					method: 'POST',
+					header: {
+						'contentType': 'applications/json'
+					},
+					credentials: 'same-origin',
+					body: JSON.stringify({
+						'personName': personName,
+						'personSurname': personSurname,
+						'personNip': personNip,
+						'personPesel': personPesel,
+						'personRegon': personRegon
+					})
+				})
+				.then(function(response) {
+					return response.text();
+				})
+				.then(function(responseText) {
+
+					try {
+						return JSON.parse(responseText);
+					} catch (e) {
+						throw responseText;
+					}
+				})
+				.then(function(result) {
+
+					if (result.type == 'success') {
+						p5UI__notifyAjaxCallback(result);
+						resolve(result.body);
+					}
+				})
+				.catch(function(error) {
+					if(DBG) console.log('request failed', error);
+				})
+
+	    })
+	  },
+	  allowOutsideClick: false
+	}).then(function (createPerson) {
+		 if(DBG) console.log('dodanie osoby: ', createPerson);
+
+	});
+}
+
+/**
+* Dodaj nowego kontrahenta
+*/
+function createKontrahentAjax(event) {
+	event.preventDefault();
+
+	swal({
+	  title: 'Dodaj podmiot/kontrahenta',
+	  showCancelButton: true,
+	  confirmButtonText: 'Zapisz',
+	  showLoaderOnConfirm: true,
+	  html:
+		'<div class="form-group">'+
+    '<input class="form-control required" id="companyFullName" placeholder="Pelna nazwa" >' +
+    '<input class="form-control required" id="companyShortName" placeholder="Skrócona nazwa\">'+
+		'<input class="form-control required" id="companyNameGroup" placeholder="Nazwa grupy kapitałowej">'+
+		'<input class="form-control required" id="companyKrs" placeholder="KRS">'+
+		'<input class="form-control required" id="companyNip" placeholder="NIP">'+
+		'<input class="form-control required" id="companyPesel" placeholder="PESEL">'+
+		'<input class="form-control required" id="companyFax" placeholder="FAX">'+
+		'<input class="form-control required" id="companyTelefon" placeholder="Telefon">'+
+		'<input class="form-control required" id="companyMail" placeholder="Mail">'+
+		'<input class="form-control required" id="companyStreet" placeholder="Ulica">'+
+		'<input class="form-control required" id="companyNumberBuilding" placeholder="Numer budynku">'+
+		'<input class="form-control required" id="companyNumberLocal" placeholder="Numer mieszkania /lokalu">'+
+		'<input class="form-control required" id="companyPostCode" placeholder="Kod pocztowy">'+
+		'<input class="form-control required" id="companyPlace" placeholder="Miejscowosc">'+
+		'<input class="form-control required" id="companyCountry" placeholder="Kraj">'+
+		'<input class="form-control required" id="companyTypeCompany" placeholder="Typ kontrahenta">'+
+		'<input class="form-control required" id="companyTitleDocument" placeholder="Tytul dokumentu">'+
+		'<input class="form-control required" id="companyDesc" placeholder="uwagi">'+
+		'</div>',
+
+	   preConfirm: () => {
+	    return new Promise(function (resolve, reject) {
+
+				// data from form
+				var companyFullName = $('#companyFullName').val();
+				var companyShortName = $('#companyShortName').val();
+				var companyNameGroup = $('#companyNameGroup').val();
+				var companyKrs = $('#companyKrs').val();
+				var companyNip = $('#companyNip').val();
+				var companyPesel = $('#companyPesel').val();
+				var companyFax = $('#companyFax').val();
+				var companyTelefon = $('#companyTelefon').val();
+				var companyMail = $('#companyMail').val();
+				var companyStreet = $('#companyStreet').val();
+				var companyNumberBuilding = $('#companyNumberBuilding').val();
+				var companyNumberLocal = $('#companyNumberLocal').val();
+				var companyPostCode = $('#companyPostCode').val();
+				var companyPlace = $('#companyPlace').val();
+				var companyCountry = $('#companyCountry').val();
+				var companyTypeCompany = $('#companyTypeCompany').val();
+				var companyTitleDocument = $('#companyTitleDocument').val();
+				var companyDesc = $('#companyDesc').val();
+
+
+				//validate data from input
+				if (!companyFullName) reject('Proszę podać imię');
+
+				window.fetch(URL_CREATE_PRACOWNICY, {
+					method: 'POST',
+					header: {
+						'contentType': 'applications/json'
+					},
+					credentials: 'same-origin',
+					body: JSON.stringify({
+						'companyFullName': companyFullName,
+						'companyShortName': companyShortName,
+						'companyNameGroup': companyNameGroup,
+						'companyKrs': companyKrs,
+						'companyNip': companyNip,
+						'companyPesel': companyPesel,
+						'companyFax': companyFax,
+						'companyTelefon': companyTelefon,
+						'companyMail': companyMail,
+						'companyStreet': companyStreet,
+						'companyNumberBuilding': companyNumberBuilding,
+						'companyNumberLocal': companyNumberLocal,
+						'companyPostCode': companyPostCode,
+						'companyPlace': companyPlace,
+						'companyCountry': companyCountry,
+						'companyTypeCompany': companyTypeCompany,
+						'companyTitleDocument': companyTitleDocument,
+						'companyDesc': companyDesc
+					})
+				})
+				.then(function(response) {
+					return response.text();
+				})
+				.then(function(responseText) {
+
+					try {
+						return JSON.parse(responseText);
+					} catch (e) {
+						throw responseText;
+					}
+				})
+				.then(function(result) {
+
+					if (result.type == 'success') {
+						p5UI__notifyAjaxCallback(result);
+						resolve(result.body);
+					}
+				})
+				.catch(function(error) {
+					if(DBG) console.log('request failed', error);
+				})
+
+	    })
+	  },
+	  allowOutsideClick: false
+	}).then(function (createPerson) {
+		 if(DBG) console.log('dodanie podmiotu: ', createPerson);
+
+	});
+}
 
 /**
  * Popup z opcja przeniesienia pracowników do innej grupy
@@ -2434,7 +2629,6 @@ function updateTopCounters() {
 			$('.bottom--message-warning-critical-search').text('');
 		}
 
-
 		$('.smad-generate-reaport-button').removeClass('disabled');
 	}
 }
@@ -2847,6 +3041,8 @@ global.addPracownikToGroup = addPracownikToGroup;
 global.addPracownikAllToGroup = addPracownikAllToGroup;
 global.addKontrahenciToGroup = addKontrahenciToGroup;
 global.addKontrahenciAllToGroup = addKontrahenciAllToGroup;
+global.createPracownikAjax = createPracownikAjax;
+global.createKontrahentAjax = createKontrahentAjax;
 
 global.showViewUploadFile = showViewUploadFile;
 global.parseCsvFile = parseCsvFile;