1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-17 12:00:46 +01:00

Compare commits

...

10 Commits

Author SHA1 Message Date
valentina
573b8fc516 Fix minore 2024-08-01 15:58:11 +02:00
Luca
a19b5c68c9 Fix link attività da scheda modifica tag 2024-08-01 15:50:37 +02:00
Luca
4fb410e533 Merge branch 'master' of https://github.com/devcode-it/openstamanager 2024-08-01 15:40:24 +02:00
Luca
400d6e7684 Fix per evitare la creazione di un tag già esistente 2024-08-01 15:40:18 +02:00
valentina
a243c063a7 Fix minore 2024-08-01 15:39:27 +02:00
Beppe
7b91ee0efe Merge branches 'master' and 'master' of https://github.com/devcode-it/openstamanager 2024-08-01 15:36:10 +02:00
Beppe
bb6da9111e Fix eliminazione massiva righe e riattivazione tasto eliminazione fattura 2024-08-01 15:35:55 +02:00
valentina
0b0ec5a271 Fix query 2024-08-01 13:20:14 +02:00
Beppe
c100419aa3 Fix selettore ordini 2024-08-01 12:23:48 +02:00
valentina
a86574be4f Fix fatturazione sessioni tecnici 2024-08-01 11:21:35 +02:00
15 changed files with 59 additions and 30 deletions

View File

@ -25,7 +25,7 @@ switch (post('op')) {
$descrizione = post('descrizione');
if (isset($descrizione)) {
$aspetto_new = AspettoBeni::where('id', '=', (new AspettoBeni())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$aspetto_new = AspettoBeni::where('id', '=', (new AspettoBeni())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($aspetto_new)) {
$aspetto->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {

View File

@ -24,7 +24,7 @@ use Modules\CategorieDocumentali\Categoria;
switch (post('op')) {
case 'update':
$descrizione = post('descrizione');
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('deleted_at', '=', null)->first();
$categoria_new = Categoria::where('id', '=', (new Categoria())->getByField('title', $descrizione))->where('deleted_at', '=', null)->first();
if (!empty($categoria_new) && $categoria_new->id != $id_record) {
flash()->error(tr('Categoria _NAME_ già esistente!', [

View File

@ -25,7 +25,7 @@ switch (filter('op')) {
$descrizione = filter('descrizione');
if (isset($descrizione)) {
$causale_new = Causale::where('id', '=', (new Causale())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$causale_new = Causale::where('id', '=', (new Causale())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($causale_new)) {
$causale->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {

View File

@ -50,7 +50,7 @@ $id_anagrafica = $documento_finale->idanagrafica;
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "'.tr('Ordine').'", "name": "id_documento", "values": "query=SELECT `or_ordini`.`id`, CONCAT(IF(`numero_esterno` != \'\', `numero_esterno`, `numero`), \' del \', DATE_FORMAT(`data`, \'%d-%m-%Y\'), \' [\', `or_statiordine_lang`.`title` , \']\') AS descrizione FROM `or_ordini` INNER JOIN `or_statiordine` ON `or_ordini.idstatoordine`=`or_statiordine.id` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine.id`=`or_statiordine_lang.id_record` AND `or_statiordine_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` INNER JOIN `or_righe_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` WHERE `idanagrafica`='.prepare($id_anagrafica).' AND `title` IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND `dir`='.prepare($dir).' AND (`or_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) > 0 GROUP BY `or_ordini`.`id` ORDER BY `data` DESC, `numero` DESC" ]}
{[ "type": "select", "label": "'.tr('Ordine').'", "name": "id_documento", "values": "query=SELECT or_ordini.id, CONCAT(IF(numero_esterno != \'\', numero_esterno, numero), \' del \', DATE_FORMAT(data, \'%d-%m-%Y\'), \' [\', or_statiordine_lang.title , \']\') AS descrizione FROM or_ordini INNER JOIN or_statiordine ON or_ordini.idstatoordine=or_statiordine.id LEFT JOIN or_statiordine_lang ON (or_statiordine.id=or_statiordine_lang.id_record AND or_statiordine_lang.id_lang = '.prepare(Models\Locale::getDefault()->id).') INNER JOIN or_tipiordine ON or_ordini.idtipoordine=or_tipiordine.id INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id WHERE idanagrafica='.prepare($id_anagrafica).' AND title IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\') AND dir='.prepare($dir).' AND (or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0 GROUP BY or_ordini.id ORDER BY data DESC, numero DESC" ]}
</div>
</div>

View File

@ -630,11 +630,21 @@ function rimuoviRiga(id) {
},
success: function (response) {
renderMessages();
caricaRighe(null);
caricaRighe(null);';
if(!in_array($fattura->codice_stato_fe, ['RC', 'MC', 'EC01', 'WAIT'])){
echo '
$("#elimina").removeClass("disabled");';
}
echo '
},
error: function() {
renderMessages();
caricaRighe(null);
caricaRighe(null);';
if(!in_array($fattura->codice_stato_fe, ['RC', 'MC', 'EC01', 'WAIT'])){
echo '
$("#elimina").removeClass("disabled");';
}
echo '
}
});
}).catch(swal.noop);

View File

@ -171,8 +171,6 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$fattura = Fattura::find($id_fattura);
$intervento = Intervento::find($id_intervento);
$data = $intervento->fine;
$codice = $intervento->codice;
// Riga di descrizione
@ -193,12 +191,20 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$ore_di_lavoro = $sessioni->groupBy(fn ($item, $key) => $item['prezzo_orario'].'|'.$item['sconto_unitario'].'|'.$item['tipo_sconto']);
foreach ($ore_di_lavoro as $gruppo) {
$date = [];
$sessione = $gruppo->first();
$riga = Riga::build($fattura);
foreach ($gruppo as $sessione){
$dateValue = date('d/m/Y', strtotime($sessione->orario_fine));
if (!in_array($dateValue, $date)) {
$date[] = $dateValue;
}
}
$riga->descrizione = tr("Ore di lavoro dell'attività _NUM_ del _DATE_", [
'_NUM_' => $codice,
'_DATE_' => dateFormat($data),
'_DATE_' => implode(', ', $date),
]);
$riga->idintervento = $id_intervento;
$riga->um = 'ore';
@ -235,12 +241,20 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
// Diritti di chiamata raggruppati per costo
$diritti_chiamata = $sessioni->where('prezzo_diritto_chiamata', '>', 0)->groupBy(fn ($item, $key) => $item['prezzo_diritto_chiamata']);
foreach ($diritti_chiamata as $gruppo) {
$date = [];
$diritto_chiamata = $gruppo->first();
$riga = Riga::build($fattura);
foreach ($gruppo as $sessione){
$dateValue = date('d/m/Y', strtotime($sessione->orario_fine));
if (!in_array($dateValue, $date)) {
$date[] = $dateValue;
}
}
$riga->descrizione = tr("Diritto di chiamata dell'attività _NUM_ del _DATE_", [
'_NUM_' => $codice,
'_DATE_' => dateFormat($data),
'_DATE_' => implode(', ', $date),
]);
$riga->idintervento = $id_intervento;
// $riga->um = 'ore';
@ -266,17 +280,25 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
// Viaggi raggruppati per costo
$viaggi = $sessioni->where('prezzo_km_unitario', '>', 0)->groupBy(fn ($item, $key) => $item['prezzo_km_unitario'].'|'.$item['scontokm_unitario'].'|'.$item['tipo_scontokm']);
foreach ($viaggi as $gruppo) {
$date = [];
$qta_trasferta = $gruppo->sum('km');
if ($qta_trasferta == 0) {
continue;
}
foreach ($gruppo as $sessione){
$dateValue = date('d/m/Y', strtotime($sessione->orario_fine));
if (!in_array($dateValue, $date)) {
$date[] = $dateValue;
}
}
$viaggio = $gruppo->first();
$riga = Riga::build($fattura);
$riga->descrizione = tr("Trasferta dell'attività _NUM_ del _DATE_", [
'_NUM_' => $codice,
'_DATE_' => dateFormat($data),
'_DATE_' => implode(', ', $date),
]);
$riga->idintervento = $id_intervento;
$riga->um = 'km';

View File

@ -31,7 +31,7 @@ switch (filter('op')) {
$esigibilita = post('esigibilita');
$descrizione = post('descrizione');
$aliquota = Aliquota::where('id', '=', (new Aliquota())->getByField('title', $descrizione))->where('codice', '=', $codice)->orWhere('name', $descrizione)->where('id', '!=', $iva->id)->first();
$aliquota = Aliquota::where('id', '=', (new Aliquota())->getByField('title', $descrizione))->where('codice', '=', $codice)->where('id', '!=', $iva->id)->first();
if (!$aliquota) {
$iva->esente = $esente;
$iva->percentuale = $percentuale;

View File

@ -26,7 +26,7 @@ switch (filter('op')) {
$predefined = post('predefined');
if (isset($descrizione)) {
$porto_new = Porto::where('id', '=', (new Porto())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$porto_new = Porto::where('id', '=', (new Porto())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($porto_new)) {
$porto->setTranslation('title', $descrizione);
if (!empty($predefined)) {

View File

@ -27,7 +27,7 @@ switch (filter('op')) {
$colore = filter('colore');
if (isset($descrizione)) {
$provenienza_new = Provenienza::where('id', '=', (new Provenienza())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$provenienza_new = Provenienza::where('id', '=', (new Provenienza())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($provenienza_new)) {
$provenienza->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {

View File

@ -28,7 +28,7 @@ switch (filter('op')) {
$is_bloccata = filter('is_bloccata');
if (isset($descrizione)) {
$relazione_new = Relazione::where('id', '=', (new Relazione())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$relazione_new = Relazione::where('id', '=', (new Relazione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($relazione_new)) {
$relazione->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {

View File

@ -26,7 +26,7 @@ switch (filter('op')) {
$descrizione = filter('descrizione');
if (isset($descrizione)) {
$settore_new = Settore::where('id', '=', (new Settore())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$settore_new = Settore::where('id', '=', (new Settore())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($settore_new)) {
$settore->setTranslation('title', $descrizione);
if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) {

View File

@ -28,7 +28,7 @@ switch (filter('op')) {
$predefined = post('predefined');
if (isset($descrizione)) {
$spedizione_new = Spedizione::where('id', '=', (new Spedizione())->getByField('title', $descrizione))->orWhere('name', $descrizione)->where('id', '!=', $id_record)->first();
$spedizione_new = Spedizione::where('id', '=', (new Spedizione())->getByField('title', $descrizione))->where('id', '!=', $id_record)->first();
if (empty($spedizione_new)) {
$spedizione->setTranslation('title', $descrizione);
if (!empty($predefined)) {

View File

@ -40,7 +40,7 @@ switch (post('op')) {
$nome = post('name');
$tag_new = $dbo->fetchOne('SELECT * FROM `in_tags` WHERE `in_tags`.`name`='.prepare($nome));
if (!empty($tag_new) && $tag_new['id'] != $id_record) {
if (!empty($tag_new)) {
flash()->error(tr('Tag _NAME_ già esistente!', [
'_NAME_' => $nome,
]));
@ -50,14 +50,11 @@ switch (post('op')) {
]);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Nuovo tag aggiunto!'));
}
if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $nome]);
}
if (isAjaxRequest()) {
echo json_encode([
'id' => $id_record,
'text' => $nome,
]);
flash()->info(tr('Nuovo tag aggiunto!'));
}
break;

View File

@ -53,7 +53,7 @@ if (!empty($elementi)) {
$descrizione = tr('Attività _CODICE_', [
'_CODICE_' => $elemento['codice'],
]);
$modulo = 'Attività';
$modulo = 'Interventi';
$id = $elemento['id'];
echo '

View File

@ -130,8 +130,8 @@ UPDATE `zz_widgets` SET `more_link` = "$(\'#th_Tipo input\').val(\'\').trigger(\
UPDATE `zz_settings` SET `sezione` = 'Applicazione' WHERE `zz_settings`.`nome` = "Stato dell\'attività alla chiusura";
-- Viste modulo adattatori di archiviazione
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
(NULL, (SELECT id FROM zz_modules WHERE directory='giacenze_sedi'), 'Valore', '(prezzo_acquisto*movimenti.qta)', 11, 1, 0, 1, 0, '', '', 1, 1, 0);
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name`= 'Giacenze sedi'), 'Valore', '(prezzo_acquisto*movimenti.qta)', 11, 1, 0, 1, 0, '', '', 1, 1, 0);
INSERT INTO `zz_views_lang` (`id`, `id_lang`, `id_record`, `title`) VALUES
(NULL, 1, (SELECT id FROM zz_views WHERE id_module = (SELECT id FROM zz_modules WHERE directory='giacenze_sedi') AND query = '(prezzo_acquisto*qta)'), 'Valore');
INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
(1, (SELECT `id` FROM `zz_views` WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name`='Giacenze sedi') AND `name` = 'Valore'), 'Valore');