|
24 | 24 | use Models\Module; |
25 | 25 | use Modules\Anagrafiche\Anagrafica; |
26 | 26 | use Modules\Articoli\Articolo as ArticoloOriginale; |
| 27 | +use Modules\Articoli\Barcode; |
27 | 28 | use Modules\Iva\Aliquota; |
28 | 29 | use Modules\Ordini\Components\Articolo; |
29 | 30 | use Modules\Ordini\Components\Descrizione; |
|
78 | 79 | $bollo = 0; |
79 | 80 | } |
80 | 81 |
|
81 | | - // Leggo la descrizione del pagamento |
82 | | - $query = 'SELECT `title` AS descrizione FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_pagamenti`.`id`='.prepare($idpagamento); |
83 | | - $rs = $dbo->fetchArray($query); |
84 | | - $pagamento = $rs[0]['descrizione']; |
85 | 82 |
|
86 | 83 | $ordine->nome = post('nome'); |
87 | 84 | $ordine->idanagrafica = post('idanagrafica'); |
|
119 | 116 | $ordine->condizioni_fornitura = post('condizioni_fornitura'); |
120 | 117 |
|
121 | 118 | // Verifica la presenza di ordini con lo stesso numero |
122 | | - $ordini = $dbo->fetchArray('SELECT * FROM `or_ordini` WHERE `numero_cliente`='.prepare(post('numero_cliente'))."AND `numero_cliente` IS NOT NULL AND `numero_cliente` != '' AND `id`!=".prepare($id_record).' AND `idanagrafica`='.prepare(post('idanagrafica'))." AND DATE_FORMAT(`or_ordini`.`data`, '%Y')=".prepare(Carbon::parse(post('data'))->copy()->format('Y'))); |
| 119 | + $query = 'SELECT * FROM `or_ordini` WHERE `numero_cliente` = :numero_cliente AND `numero_cliente` IS NOT NULL AND `numero_cliente` != \'\' AND `id` != :id_record AND `idanagrafica` = :idanagrafica AND DATE_FORMAT(`or_ordini`.`data`, \'%Y\') = :anno'; |
| 120 | + $params = [ |
| 121 | + ':numero_cliente' => post('numero_cliente'), |
| 122 | + ':id_record' => $id_record, |
| 123 | + ':idanagrafica' => post('idanagrafica'), |
| 124 | + ':anno' => Carbon::parse(post('data'))->copy()->format('Y'), |
| 125 | + ]; |
| 126 | + $ordini = $dbo->fetchArray($query, $params); |
123 | 127 |
|
124 | 128 | if (!empty($ordini)) { |
125 | 129 | $documento = ''; |
|
144 | 148 | $ordine->setScontoFinale(post('sconto_finale'), post('tipo_sconto_finale')); |
145 | 149 |
|
146 | 150 | $ordine->save(); |
147 | | - |
148 | | - if ($dbo->query($query)) { |
149 | | - $query = 'SELECT `title` FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine_lang`.`id_record` = `or_statiordine`.`id` AND `or_statiordine_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `or_statiordine`.`id`='.prepare($idstatoordine); |
150 | | - $rs = $dbo->fetchArray($query); |
| 151 | + if ($ordine) { |
| 152 | + $stato = \Modules\Ordini\Stato::find($idstatoordine); |
151 | 153 |
|
152 | 154 | // Ricalcolo inps, ritenuta e bollo (se l'ordine non è stato evaso) |
153 | 155 | if ($dir == 'entrata') { |
154 | | - if ($rs[0]['name'] != 'Evaso') { |
| 156 | + if ($stato->name != 'Evaso') { |
155 | 157 | ricalcola_costiagg_ordine($id_record); |
156 | 158 | } |
157 | 159 | } else { |
158 | | - if ($rs[0]['name'] != 'Evaso') { |
| 160 | + if ($stato->name != 'Evaso') { |
159 | 161 | ricalcola_costiagg_ordine($id_record, $idrivalsainps, $idritenutaacconto, $bollo); |
160 | 162 | } |
161 | 163 | } |
|
511 | 513 | $order = explode(',', post('order', true)); |
512 | 514 |
|
513 | 515 | foreach ($order as $i => $id_riga) { |
514 | | - $dbo->query('UPDATE `or_righe_ordini` SET `order` = '.prepare($i + 1).' WHERE id='.prepare($id_riga)); |
| 516 | + $query = 'UPDATE `or_righe_ordini` SET `order` = :order_value WHERE id = :id_riga'; |
| 517 | + $params = [ |
| 518 | + ':order_value' => $i + 1, |
| 519 | + ':id_riga' => $id_riga, |
| 520 | + ]; |
| 521 | + $dbo->query($query, $params); |
515 | 522 | } |
516 | 523 |
|
517 | 524 | break; |
|
766 | 773 | $save_inline_barcode = true; |
767 | 774 |
|
768 | 775 | if (!empty($barcode)) { |
769 | | - $id_articolo = $dbo->selectOne('mg_articoli_barcode', 'idarticolo', ['barcode' => $barcode])['idarticolo']; |
| 776 | + $barcode_articolo = Barcode::where('barcode', $barcode)->first(); |
| 777 | + $id_articolo = $barcode_articolo ? $barcode_articolo->idarticolo : null; |
| 778 | + |
770 | 779 | if (empty($id_articolo)) { |
771 | | - $id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => '', 'codice' => $barcode])['id']; |
| 780 | + $id_articolo = ArticoloOriginale::where('deleted_at', null) |
| 781 | + ->where('attivo', 1) |
| 782 | + ->where('barcode', '') |
| 783 | + ->where('codice', $barcode) |
| 784 | + ->value('id'); |
772 | 785 | $save_inline_barcode = false; |
773 | 786 | } |
774 | 787 | } |
775 | 788 |
|
776 | 789 | if (!empty($id_articolo)) { |
777 | 790 | $permetti_movimenti_sotto_zero = setting('Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita'); |
778 | | - $qta_articolo = $dbo->selectOne('mg_articoli', 'qta', ['id' => $id_articolo])['qta']; |
| 791 | + $articolo = ArticoloOriginale::find($id_articolo); |
| 792 | + $qta_articolo = $articolo ? $articolo->qta : 0; |
779 | 793 |
|
780 | 794 | $originale = ArticoloOriginale::find($id_articolo); |
781 | 795 |
|
|
817 | 831 | } else { |
818 | 832 | $prezzo_unitario = $prezzo_unitario ?: $originale->prezzo_acquisto; |
819 | 833 | } |
820 | | - $provvigione = $dbo->selectOne('an_anagrafiche', 'provvigione_default', ['idanagrafica' => $ordine->idagente])['provvigione_default']; |
| 834 | + $agente = Anagrafica::find($ordine->idagente); |
| 835 | + $provvigione = $agente ? $agente->provvigione_default : 0; |
821 | 836 |
|
822 | 837 | // Aggiunta sconto combinato se è presente un piano di sconto nell'anagrafica |
823 | 838 | $join = ($dir == 'entrata' ? 'id_piano_sconto_vendite' : 'id_piano_sconto_acquisti'); |
824 | | - $piano_sconto = $dbo->fetchOne('SELECT prc_guadagno FROM an_anagrafiche INNER JOIN mg_piani_sconto ON an_anagrafiche.'.$join.'=mg_piani_sconto.id WHERE idanagrafica='.prepare($id_anagrafica)); |
| 839 | + $anagrafica_model = Anagrafica::find($id_anagrafica); |
| 840 | + $piano_sconto = $anagrafica_model ? database()->table('mg_piani_sconto') |
| 841 | + ->select('prc_guadagno') |
| 842 | + ->where('id', $anagrafica_model->$join) |
| 843 | + ->first() : null; |
825 | 844 | if (!empty($piano_sconto)) { |
826 | | - $sconto = parseScontoCombinato($piano_sconto['prc_guadagno'].'+'.$sconto); |
| 845 | + $sconto = parseScontoCombinato($piano_sconto->prc_guadagno.'+'.$sconto); |
827 | 846 | } |
828 | 847 |
|
829 | 848 | $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); |
|
936 | 955 |
|
937 | 956 | // Aggiunta sconto combinato se è presente un piano di sconto nell'anagrafica |
938 | 957 | $join = ($dir == 'entrata' ? 'id_piano_sconto_vendite' : 'id_piano_sconto_acquisti'); |
939 | | - $piano_sconto = $dbo->fetchOne('SELECT prc_guadagno FROM an_anagrafiche INNER JOIN mg_piani_sconto ON an_anagrafiche.'.$join.'=mg_piani_sconto.id WHERE idanagrafica='.prepare($id_anagrafica)); |
| 958 | + $anagrafica_model = Anagrafica::find($id_anagrafica); |
| 959 | + $piano_sconto = $anagrafica_model ? database()->table('mg_piani_sconto') |
| 960 | + ->select('prc_guadagno') |
| 961 | + ->where('id', $anagrafica_model->$join) |
| 962 | + ->first() : null; |
940 | 963 | if (!empty($piano_sconto)) { |
941 | | - $sconto = parseScontoCombinato($piano_sconto['prc_guadagno'].'+'.$sconto); |
| 964 | + $sconto = parseScontoCombinato($piano_sconto->prc_guadagno.'+'.$sconto); |
942 | 965 | } |
943 | 966 |
|
944 | 967 | $riga->setSconto($sconto, 'PRC'); |
|
0 commit comments