Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
99083268e2
|
@ -17,7 +17,7 @@ $total = Util\Query::readQuery($structure);
|
|||
// Ricerca
|
||||
$search = [];
|
||||
for ($i = 0; $i < count($columns); ++$i) {
|
||||
if (!empty($columns[$i]['search']['value']) || $columns[$i]['search']['value']=='0') {
|
||||
if (!empty($columns[$i]['search']['value']) || $columns[$i]['search']['value'] == '0') {
|
||||
$search[$total['fields'][$i]] = $columns[$i]['search']['value'];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -213,6 +213,7 @@ function message(element) {
|
|||
onOpen: function () {
|
||||
start_superselect();
|
||||
start_inputmask();
|
||||
start_datepickers();
|
||||
},
|
||||
preConfirm: function () {
|
||||
$form = $('#swal-form');
|
||||
|
|
|
@ -30,9 +30,9 @@ switch (post('op')) {
|
|||
|
||||
case 'import':
|
||||
$sede_fields = [
|
||||
'piva',
|
||||
'codice_fiscale',
|
||||
'codice_destinatario',
|
||||
//'piva',
|
||||
//'codice_fiscale',
|
||||
//'codice_destinatario',
|
||||
'indirizzo',
|
||||
'indirizzo2',
|
||||
'citta',
|
||||
|
@ -139,6 +139,7 @@ return [
|
|||
'Citt_',
|
||||
'Città',
|
||||
'Città',
|
||||
'Citta',
|
||||
],
|
||||
],
|
||||
[
|
||||
|
@ -208,6 +209,7 @@ return [
|
|||
'P.IVA',
|
||||
'P.IVA/TAX ID',
|
||||
'TAX ID',
|
||||
'Partita IVA',
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
|
@ -250,8 +250,10 @@ class Anagrafica extends Model
|
|||
|
||||
public function setCodiceDestinatarioAttribute($value)
|
||||
{
|
||||
if ($this->sedeLegale->nazione->iso2 != 'IT') {
|
||||
if (!empty($this->sedeLegale->nazione) && $this->sedeLegale->nazione->iso2 != 'IT') {
|
||||
$value = '';
|
||||
dump('tes');
|
||||
exit();
|
||||
}
|
||||
|
||||
$this->attributes['codice_destinatario'] = trim(strtoupper($value));
|
||||
|
|
|
@ -5,9 +5,7 @@ include_once __DIR__.'/../../core.php';
|
|||
switch (post('op')) {
|
||||
case 'delete-bulk':
|
||||
|
||||
|
||||
foreach ($id_records as $id) {
|
||||
|
||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id).')
|
||||
|
||||
UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id).')
|
||||
|
@ -16,10 +14,9 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($elementi)) {
|
||||
$dbo->query('UPDATE mg_articoli SET deleted_at = NOW() WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
}else{
|
||||
} else {
|
||||
$dbo->query('DELETE FROM `mg_articoli` WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
flash()->info(tr('Articoli eliminati!'));
|
||||
|
|
|
@ -391,7 +391,6 @@ $riga = $contratto->getRiga($type, $id_riga);
|
|||
|
||||
// Creazione del contratto al volo
|
||||
if (post('create_document') == 'on') {
|
||||
|
||||
$contratto = Contratto::build($preventivo->anagrafica, $preventivo->nome);
|
||||
|
||||
$contratto->idpagamento = $preventivo->idpagamento;
|
||||
|
|
|
@ -23,10 +23,9 @@ foreach ($righe as $riga) {
|
|||
echo '
|
||||
<tr data-id="'.$riga->id.'">';
|
||||
|
||||
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.(($riga->order)+1).'
|
||||
'.(($riga->order) + 1).'
|
||||
</td>';
|
||||
|
||||
// Descrizione
|
||||
|
|
|
@ -179,7 +179,7 @@ switch (get('op')) {
|
|||
<div class="fc-event '.$class.'" data-id="'.$r['id'].'" data-idcontratto="'.$r['idcontratto'].'" data-ref="'.$r['ref'].'">'.(($r['ref'] == 'intervento') ? '<i class=\'fa fa-wrench pull-right\'></i>' : '<i class=\'fa fa-file-text-o pull-right\'></i>').'
|
||||
<b>'.$r['ragione_sociale'].'</b><br>'.Translator::dateToLocale($r['data_richiesta']).' ('.$r['tipointervento'].')<div class="request" >'.(!empty($r['richiesta']) ? ' - '.$r['richiesta'] : '').'</div>'.(!empty($r['nomecontratto']) ? '<br><b>Contratto:</b> '.$r['nomecontratto'] : '').
|
||||
(!empty($r['data_scadenza'] and $r['data_scadenza'] != '0000-00-00 00:00:00') ? '<br><small>'.tr('entro il: ').Translator::dateToLocale($r['data_scadenza']).'</small>' : '').
|
||||
(($r['ref'] == 'intervento') ? (Modules::link('Interventi', $r['id'], '<i class="fa fa-eye"></i>', null, 'title="'.tr("Visualizza scheda").'" class="btn btn-primary btn-xs pull-right"')) : (Modules::link('Contratti', $r['idcontratto'], '<i class="fa fa-eye"></i>', null, 'title="'.tr("Visualizza scheda").'" class="btn btn-primary btn-xs pull-right"'))).
|
||||
(($r['ref'] == 'intervento') ? (Modules::link('Interventi', $r['id'], '<i class="fa fa-eye"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-primary btn-xs pull-right"')) : (Modules::link('Contratti', $r['idcontratto'], '<i class="fa fa-eye"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-primary btn-xs pull-right"'))).
|
||||
'</div>';
|
||||
}
|
||||
} ?>
|
||||
|
|
|
@ -41,7 +41,7 @@ foreach ($righe as $riga) {
|
|||
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.(($riga->order)+1).'
|
||||
'.(($riga->order) + 1).'
|
||||
</td>';
|
||||
|
||||
echo '
|
||||
|
|
|
@ -74,7 +74,7 @@ foreach ($righe as $riga) {
|
|||
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.(($riga->order)+1).'
|
||||
'.(($riga->order) + 1).'
|
||||
</td>';
|
||||
|
||||
echo '
|
||||
|
|
|
@ -421,6 +421,10 @@ $riga = $intervento->getRiga($type, $id_riga);
|
|||
|
||||
$new = $intervento->replicate();
|
||||
$new->idstatointervento = $idstatointervento;
|
||||
|
||||
//calcolo il nuovo codice
|
||||
$new->codice = Intervento::getNextCodice($data_richiesta);
|
||||
|
||||
$new->save();
|
||||
|
||||
$id_record = $new->id;
|
||||
|
@ -431,7 +435,7 @@ $riga = $intervento->getRiga($type, $id_riga);
|
|||
$new_riga->setParent($new);
|
||||
|
||||
//Copio le righe
|
||||
if( $copia_righe==1 ){
|
||||
if ($copia_righe == 1) {
|
||||
$righe = $intervento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
$new_riga = $riga->replicate();
|
||||
|
@ -446,20 +450,19 @@ $riga = $intervento->getRiga($type, $id_riga);
|
|||
$i = 0;
|
||||
|
||||
//Copio le sessioni
|
||||
if( $copia_sessioni==1 ){
|
||||
if ($copia_sessioni == 1) {
|
||||
$sessioni = $intervento->sessioni;
|
||||
foreach ($sessioni as $sessione) {
|
||||
|
||||
//Se è la prima sessione che copio importo la data con quella della richiesta
|
||||
if( $i == 0 ){
|
||||
$orario_inizio = date("Y-m-d", strtotime($data_richiesta)).' '.date("H:i:s", strtotime($sessione->orario_inizio));
|
||||
}else{
|
||||
if ($i == 0) {
|
||||
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
|
||||
} else {
|
||||
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
|
||||
$orario_inizio = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff));
|
||||
$orario_inizio = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff));
|
||||
}
|
||||
|
||||
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
|
||||
$orario_fine = date("Y-m-d H:i:s", (strtotime($orario_inizio)+$diff_fine));
|
||||
$orario_fine = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff_fine));
|
||||
|
||||
$new_sessione = $sessione->replicate();
|
||||
$new_sessione->idintervento = $new->id;
|
||||
|
@ -468,7 +471,7 @@ $riga = $intervento->getRiga($type, $id_riga);
|
|||
$new_sessione->orario_fine = $orario_fine;
|
||||
$new_sessione->save();
|
||||
|
||||
$i++;
|
||||
++$i;
|
||||
$inizio_old = $sessione->orario_inizio;
|
||||
}
|
||||
}
|
||||
|
@ -476,5 +479,4 @@ $riga = $intervento->getRiga($type, $id_riga);
|
|||
flash()->info(tr('Attività duplicata correttamente!'));
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
|
|
@ -141,6 +141,78 @@ switch (post('op')) {
|
|||
flash()->warning(tr('Nessuna attività modificata!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'copy':
|
||||
|
||||
$idstatointervento = post('idstatointervento');
|
||||
$data_richiesta = post('data_richiesta');
|
||||
$copia_sessioni = post('sessioni');
|
||||
$copia_righe = post('righe');
|
||||
|
||||
foreach ($id_records as $idintervento) {
|
||||
$intervento = Intervento::find($idintervento);
|
||||
|
||||
$new = $intervento->replicate();
|
||||
$new->idstatointervento = $idstatointervento;
|
||||
|
||||
//calcolo il nuovo codice
|
||||
$new->codice = Intervento::getNextCodice($data_richiesta);
|
||||
|
||||
$new->save();
|
||||
|
||||
$id_record = $new->id;
|
||||
|
||||
$righe = $intervento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
$new_riga = $riga->replicate();
|
||||
$new_riga->setParent($new);
|
||||
|
||||
//Copio le righe
|
||||
if ($copia_righe == 1) {
|
||||
$righe = $intervento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
$new_riga = $riga->replicate();
|
||||
$new_riga->setParent($new);
|
||||
|
||||
$new_riga->qta_evasa = 0;
|
||||
$new_riga->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
|
||||
//Copio le sessioni
|
||||
if ($copia_sessioni == 1) {
|
||||
$sessioni = $intervento->sessioni;
|
||||
foreach ($sessioni as $sessione) {
|
||||
//Se è la prima sessione che copio importo la data con quella della richiesta
|
||||
if ($i == 0) {
|
||||
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
|
||||
} else {
|
||||
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old);
|
||||
$orario_inizio = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff));
|
||||
}
|
||||
|
||||
$diff_fine = strtotime($sessione->orario_fine) - strtotime($sessione->orario_inizio);
|
||||
$orario_fine = date('Y-m-d H:i:s', (strtotime($orario_inizio) + $diff_fine));
|
||||
|
||||
$new_sessione = $sessione->replicate();
|
||||
$new_sessione->idintervento = $new->id;
|
||||
|
||||
$new_sessione->orario_inizio = $orario_inizio;
|
||||
$new_sessione->orario_fine = $orario_fine;
|
||||
$new_sessione->save();
|
||||
|
||||
++$i;
|
||||
$inizio_old = $sessione->orario_inizio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flash()->info(tr('Attività duplicate correttamente!'));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -179,4 +251,18 @@ return [
|
|||
'blank' => false,
|
||||
],
|
||||
],
|
||||
|
||||
'copy' => [
|
||||
'text' => tr('Duplica attività'),
|
||||
'data' => [
|
||||
'title' => tr('Vuoi davvero fare una copia degli interventi selezionati?'),
|
||||
'msg' => '<br>{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]}
|
||||
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]}
|
||||
<br>{[ "type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"" ]}
|
||||
<br>{[ "type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"" ]}',
|
||||
'button' => tr('Duplica attività'),
|
||||
'class' => 'btn btn-lg btn-warning',
|
||||
'blank' => false,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
@ -36,6 +36,9 @@ class Articoli extends Resource implements RetrieveInterface, CreateInterface
|
|||
$articolo->qta = $data['qta'];
|
||||
$articolo->um = $data['um'];
|
||||
|
||||
$articolo->prezzo_unitario = $originale->prezzo_vendita;
|
||||
$articolo->costo_unitario = $originale->prezzo_acquisto;
|
||||
|
||||
$articolo->save();
|
||||
}
|
||||
|
||||
|
|
|
@ -41,10 +41,9 @@ foreach ($righe as $riga) {
|
|||
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.(($riga->order)+1).'
|
||||
'.(($riga->order) + 1).'
|
||||
</td>';
|
||||
|
||||
|
||||
echo '
|
||||
<td>';
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ switch (post('op')) {
|
|||
case 'copy':
|
||||
// Copia del preventivo
|
||||
$new = $preventivo->replicate();
|
||||
$new->numero = Preventivo::getNextNumero( Carbon::now() );
|
||||
$new->numero = Preventivo::getNextNumero(Carbon::now());
|
||||
$new->data_bozza = Carbon::now();
|
||||
$new->data_conclusione = Carbon::now()->addMonth();
|
||||
$new->stato = 'Bozza';
|
||||
|
|
|
@ -23,9 +23,9 @@ foreach ($righe as $riga) {
|
|||
echo '
|
||||
<tr data-id="'.$riga->id.'">';
|
||||
|
||||
echo '
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.(($riga->order)+1).'
|
||||
'.(($riga->order) + 1).'
|
||||
</td>';
|
||||
|
||||
// Descrizione
|
||||
|
|
|
@ -27,6 +27,7 @@ class Login extends Resource implements CreateInterface
|
|||
$response['token'] = $token;
|
||||
$response['group'] = $user['gruppo'];
|
||||
$response['google_maps_token'] = setting('Google Maps API key');
|
||||
$response['prezzi_al_tecnico'] = setting('Mostra i prezzi al tecnico');
|
||||
|
||||
$response['version'] = Update::getVersion();
|
||||
} else {
|
||||
|
|
|
@ -55,7 +55,8 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
|
|||
$contratto = $pianificazione->contratto;
|
||||
$anagrafica = $contratto->anagrafica;
|
||||
|
||||
echo '
|
||||
if (strtolower($pianificazione->data_scadenza->formatLocalized('%B %Y')) == strtolower($mese)) {
|
||||
echo '
|
||||
<tr>
|
||||
<td>
|
||||
'.dateFormat($pianificazione->data_scadenza).'
|
||||
|
@ -74,14 +75,15 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
|
|||
]).'</small>
|
||||
</td>';
|
||||
|
||||
// Pulsanti
|
||||
echo '
|
||||
// Pulsanti
|
||||
echo '
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-primary btn-sm" onclick="crea_fattura('.$contratto->id.', '.$pianificazione->id.')">
|
||||
<i class="fa fa-euro"></i> '.tr('Crea fattura').'
|
||||
</button>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
|
|
|
@ -7,24 +7,22 @@ use Plugins\ReceiptFE\Interaction;
|
|||
echo '
|
||||
<p>'.tr('Le ricevute delle Fatture Elettroniche permettono di individuare se una determinata fattura tramessa è stata accettata dal Sistema Di Interscambio').'.</p>';
|
||||
if (Interaction::isEnabled()) {
|
||||
|
||||
echo '
|
||||
<p>'.tr('Tramite il pulsante _BTN_ è possibile procedere al recupero delle ricevute, aggiornando automaticamente lo stato delle relative fatture e allegandole ad esse', [
|
||||
'_BTN_' => '<i class="fa fa-refresh"></i> <b>'.tr('Ricerca ricevute').'</b>',
|
||||
]).'.</p>';
|
||||
|
||||
//controllo se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora una ricevuta
|
||||
$fatture_generate = $dbo->fetchArray('SELECT `co_documenti`.`numero_esterno`, `co_documenti`.`data`, `co_documenti`.`data_stato_fe` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir` = \'entrata\' AND `co_documenti`.`codice_stato_fe` = \'WAIT\' AND `co_documenti`.`data_stato_fe` >= "'.$_SESSION['period_start'].'" AND `co_documenti`.`data_stato_fe`<(NOW() - INTERVAL 7 DAY) ORDER BY `co_documenti`.`data_stato_fe`');
|
||||
//controllo se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora una ricevuta
|
||||
$fatture_generate = $dbo->fetchArray('SELECT `co_documenti`.`numero_esterno`, `co_documenti`.`data`, `co_documenti`.`data_stato_fe` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir` = \'entrata\' AND `co_documenti`.`codice_stato_fe` = \'WAIT\' AND `co_documenti`.`data_stato_fe` >= "'.$_SESSION['period_start'].'" AND `co_documenti`.`data_stato_fe`<(NOW() - INTERVAL 7 DAY) ORDER BY `co_documenti`.`data_stato_fe`');
|
||||
|
||||
foreach ($fatture_generate as $fattura_generata) {
|
||||
echo '
|
||||
foreach ($fatture_generate as $fattura_generata) {
|
||||
echo '
|
||||
<div class="alert alert-warning"><i class="fa fa-warning" ></i> '.tr('Attenzione: la fattura _NUM_ del _DATA_ è in attesa di una ricevuta dal _DATA_STATO_FE.', [
|
||||
'_NUM_' => $fattura_generata['numero_esterno'],
|
||||
'_DATA_' => Translator::dateToLocale($fattura_generata['data']),
|
||||
'_DATA_STATO_FE' => Translator::timestampToLocale($fattura_generata['data_stato_fe'])
|
||||
'_DATA_STATO_FE' => Translator::timestampToLocale($fattura_generata['data_stato_fe']),
|
||||
]).'</div>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
echo '
|
||||
<div class="box box-success">
|
||||
|
|
|
@ -135,7 +135,7 @@ class Ricevuta
|
|||
$this->saveAllegato($codice);
|
||||
|
||||
//In caso di Notifica Esito il codice è definito dal nodo <Esito> della ricevuta
|
||||
if ($codice == 'NE'){
|
||||
if ($codice == 'NE') {
|
||||
$this->xml = XML::readFile($this->file);
|
||||
$codice = $this->xml['EsitoCommittente']['Esito'];
|
||||
}
|
||||
|
|
|
@ -44,8 +44,7 @@ foreach ($righe as $riga) {
|
|||
|
||||
echo'
|
||||
<td class=\'text-center\' >
|
||||
'.($r['order']+1).'</td>';
|
||||
|
||||
'.($r['order'] + 1).'</td>';
|
||||
|
||||
echo'
|
||||
<td>
|
||||
|
|
|
@ -42,11 +42,9 @@ foreach ($righe as $riga) {
|
|||
echo '
|
||||
<tr>';
|
||||
|
||||
|
||||
echo'
|
||||
<td class=\'text-center\' >
|
||||
'.($r['order']+1).'</td>';
|
||||
|
||||
'.($r['order'] + 1).'</td>';
|
||||
|
||||
echo '
|
||||
<td>
|
||||
|
|
|
@ -89,7 +89,9 @@ foreach ($righe as $riga) {
|
|||
<tr>';
|
||||
|
||||
echo '<td>';
|
||||
if (!empty($riga->articolo->immagine)) {echo '<img src="files/articoli/'.$riga->articolo->immagine.'" width="95" height="95">';}
|
||||
if (!empty($riga->articolo->immagine)) {
|
||||
echo '<img src="files/articoli/'.$riga->articolo->immagine.'" width="95" height="95">';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '
|
||||
|
|
Loading…
Reference in New Issue