table('mago_sale_ord_detail', [ 'id' => false, 'primary_key' => ['sale_ord_id', 'sub_id'], 'comment' => 'Copia locale MA_SaleOrdDetails (Mago4) - sola lettura', ]) ->addColumn('sale_ord_id', 'integer', ['signed' => false]) ->addColumn('sub_id', 'integer') ->addColumn('line', 'integer', ['default' => 0]) ->addColumn('position', 'integer', ['default' => 0]) ->addColumn('line_type', 'integer', ['default' => 0]) ->addColumn('item', 'string', ['limit' => 30, 'default' => '']) ->addColumn('description', 'string', ['limit' => 255, 'default' => '']) ->addColumn('uom', 'string', ['limit' => 10, 'default' => '']) ->addColumn('qty', 'decimal', ['precision' => 15, 'scale' => 3, 'default' => 0]) ->addColumn('delivered_qty', 'decimal', ['precision' => 15, 'scale' => 3, 'default' => 0]) ->addColumn('invoiced_qty', 'decimal', ['precision' => 15, 'scale' => 3, 'default' => 0]) ->addColumn('unit_value', 'decimal', ['precision' => 15, 'scale' => 5, 'default' => 0]) ->addColumn('discount_amount', 'decimal', ['precision' => 15, 'scale' => 2, 'default' => 0]) ->addColumn('taxable_amount', 'decimal', ['precision' => 15, 'scale' => 2, 'default' => 0]) ->addColumn('total_amount', 'decimal', ['precision' => 15, 'scale' => 2, 'default' => 0]) ->addColumn('expected_delivery_date', 'date', ['null' => true]) ->addColumn('confirmed_delivery_date', 'date', ['null' => true]) ->addColumn('delivered', 'boolean', ['default' => false]) ->addColumn('invoiced', 'boolean', ['default' => false]) ->addColumn('cancelled', 'boolean', ['default' => false]) ->addColumn('customer', 'string', ['limit' => 20, 'default' => '']) ->addColumn('order_date', 'date', ['null' => true]) ->addColumn('internal_ord_no', 'string', ['limit' => 30, 'default' => '']) ->addColumn('notes', 'text', ['null' => true]) ->addColumn('tb_modified', 'datetime', ['null' => true]) ->addColumn('synced_at', 'datetime', ['null' => true]) ->addIndex(['item']) ->addIndex(['order_date']) ->addIndex(['expected_delivery_date']) ->addIndex(['customer']) ->create(); // Date di consegna ricavate dalle righe (la data in testata spesso resta = data ordine) $this->table('mago_sale_ord') ->addColumn('line_expected_date', 'date', ['null' => true, 'after' => 'compulsory_delivery_date', 'comment' => 'Prima data prevista tra le righe aperte']) ->addColumn('line_confirmed_date', 'date', ['null' => true, 'after' => 'line_expected_date', 'comment' => 'Prima data confermata tra le righe aperte']) ->addColumn('lines_count', 'integer', ['default' => 0, 'after' => 'line_confirmed_date']) ->update(); } }