trans('Invoice').' '.$object->ref.' - '.$langs->trans('Addenda Soriana');
llxHeader('', $title);
if ($id > 0) {
$head = facture_prepare_head($object);
print dol_get_fiche_head($head, 'addenda', $langs->trans("Invoice"), -1, 'bill');
// Banner
$linkback = ''.$langs->trans("BackToList").'';
$morehtmlref = '
';
// Verificar documentos origen
$hasOrder = false;
$hasShipment = false;
$missingFields = array();
// Verificar pedido origen
if (!empty($object->origin) && $object->origin == 'commande' && $object->origin_id > 0) {
require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
$order = new Commande($db);
$order->fetch($object->origin_id);
$addendaOrder = new AddendaSorianaCommande($db);
$addendaOrder->fetchByOrder($order->id);
$hasOrder = true;
$morehtmlref .= $langs->trans('Order').': '.$order->ref.'
';
// Verificar campos obligatorios del pedido
if (empty($addendaOrder->remision)) $missingFields[] = $langs->trans("Remission").' ('.$langs->trans("Order").')';
if (empty($addendaOrder->folio_pedido)) $missingFields[] = $langs->trans("OrderRef").' ('.$langs->trans("Order").')';
}
// Verificar envío relacionado
$object->fetchObjectLinked();
if (!empty($object->linkedObjects['shipping'])) {
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
$shipment = reset($object->linkedObjects['shipping']);
$addendaShipment = new AddendaSorianaExpedition($db);
$addendaShipment->fetchByExpedition($shipment->id);
$hasShipment = true;
$morehtmlref .= $langs->trans('Shipping').': '.$shipment->ref;
// Verificar campos obligatorios del envío
if (empty($addendaShipment->remision)) $missingFields[] = $langs->trans("Remission").' ('.$langs->trans("Shipping").')';
if (empty($addendaShipment->fecha_remision)) $missingFields[] = $langs->trans("RemissionDate");
if (empty($addendaShipment->cantidad_bultos)) $missingFields[] = $langs->trans("PackageQuantity");
if (empty($addendaShipment->fecha_entrega)) $missingFields[] = $langs->trans("DeliveryDate");
if (empty($addendaShipment->cita)) $missingFields[] = $langs->trans("Appointment");
}
$morehtmlref .= '
';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
// Mostrar advertencia si faltan campos
if (!empty($missingFields)) {
print '';
print $langs->trans("MissingRequiredFields").':
';
foreach ($missingFields as $field) {
print '- '.$field.'
';
}
print '
';
}
print '';
// Información del Pedido
if ($hasOrder) {
print load_fiche_titre($langs->trans('OrderInformation'), '', '');
print '
';
print '| '.$langs->trans("Remission").' | '.$addendaOrder->remision.' |
';
print '| '.$langs->trans("OrderRef").' | '.$addendaOrder->folio_pedido.' |
';
print '| '.$langs->trans("ItemQuantity").' | '.$addendaOrder->cantidad_articulos.' |
';
print '
';
} else {
print '
'.$langs->trans("NoOrderFound").'
';
}
// Información del Envío
if ($hasShipment) {
print load_fiche_titre($langs->trans('ShippingInformation'), '', '');
print '
';
print '| '.$langs->trans("Remission").' | '.$addendaShipment->remision.' |
';
print '| '.$langs->trans("RemissionDate").' | '.dol_print_date($addendaShipment->fecha_remision, 'dayhour').' |
';
print '| '.$langs->trans("PackageType").' | '.$addendaShipment->tipo_bulto.' |
';
print '| '.$langs->trans("PackageQuantity").' | '.$addendaShipment->cantidad_bultos.' |
';
print '| '.$langs->trans("DeliveryDate").' | '.dol_print_date($addendaShipment->fecha_entrega, 'dayhour').' |
';
print '| '.$langs->trans("BoxPacking").' | '.yn($addendaShipment->empaque_cajas).' |
';
print '| '.$langs->trans("PalletPacking").' | '.yn($addendaShipment->empaque_tarimas).' |
';
print '| '.$langs->trans("BoxPalletQuantity").' | '.$addendaShipment->cantidad_cajas_tarimas.' |
';
print '| '.$langs->trans("Appointment").' | '.$addendaShipment->cita.' |
';
print '
';
// Detalles de los artículos
print load_fiche_titre($langs->trans('Articles'), '', '');
print '
';
print '
';
print '';
print '| '.$langs->trans("Code").' | ';
print ''.$langs->trans("Label").' | ';
print ''.$langs->trans("Quantity").' | ';
print ''.$langs->trans("UnitPrice").' | ';
print ''.$langs->trans("IEPS").' % | ';
print ''.$langs->trans("VAT").' % | ';
print ''.$langs->trans("TotalHT").' | ';
print '
';
if ($shipment && $shipment->lines) {
foreach ($shipment->lines as $line) {
$expeditionDet = new AddendaSorianaExpeditionDet($db);
if ($expeditionDet->fetchByExpeditionLine($line->id) > 0) {
print '';
print '| '.$expeditionDet->codigo.' | ';
print ''.$line->description.' | ';
print ''.price($expeditionDet->cantidad_unidad).' | ';
print ''.price($expeditionDet->costo_neto).' | ';
print ''.price($expeditionDet->porcentaje_ieps).' | ';
print ''.price($expeditionDet->porcentaje_iva).' | ';
print ''.price($expeditionDet->cantidad_unidad * $expeditionDet->costo_neto).' | ';
print '
';
}
}
}
print '
';
print '
';
} else {
print '
'.$langs->trans("NoShipmentFound").'
';
}
print '
';
print dol_get_fiche_end();
}