Skip to content
Commits on Source (5)
......@@ -20,6 +20,7 @@ class dao_ventas extends dao
if (count($rs) == 1) {
return $rs;
}
return null;
}
public function get_info_personalizada_por_entidad($id_venta, $entidad)
......@@ -28,13 +29,18 @@ class dao_ventas extends dao
$info_personalizada = $this->get_info_personalizada($id_venta);
if (!empty($info_personalizada)) {
if (count($info_personalizada) == 1) {
foreach (json_decode(array_a_utf8($info_personalizada[0]['datos'])) as $info) {
$info_personalizada_decode = json_decode(array_a_utf8($info_personalizada[0]['datos']));
if (json_last_error() != JSON_ERROR_NONE) {
lib::entorno()->log()->error(__METHOD__ . ": Error JSON: No se pudo decodificar la info personalizada de la venta");
throw new error_negocio("No se pudo decodificar la info personalizada de la venta ID: '" . $id_venta );
}
foreach ($info_personalizada_decode as $info) {
if ($entidad == $info->entidad) {
$datos = $info->datos;
}
}
} else {
$msg = "Se encontraron '" . count($info_personalizada) . "' registros de info_personalizada asociados a la venta ID: '" . $this->id_venta . "' cuando solo se permite 1.";
$msg = "Se encontraron '" . count($info_personalizada) . "' registros de info_personalizada asociados a la venta ID: '" . $id_venta . "' cuando solo se permite 1.";
lib::entorno()->log()->error(__METHOD__ . ": " . $msg);
throw new error_negocio($msg);
}
......
......@@ -809,10 +809,14 @@ TODO:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$this->generar_cobranza($venta, $ventas_por_cliente, $id_cliente, true, constantes::MEDIO_PAGO_CTA_CTE);
} else {
// Pago parcial
if (lib::parametros_sistema()->get_valor('PAGOS_PARC') == 'S') {
// Recalamar credito si existe
$this->generar_cobranza($venta, $ventas_por_cliente, $id_cliente, true, constantes::MEDIO_PAGO_CTA_CTE, true);
}
}
}
protected function generar_cobranza($venta, $ventas_por_cliente, $id_cliente, $utiliza_credito_disponible, $id_medio_pago)
protected function generar_cobranza($venta, $ventas_por_cliente, $id_cliente, $utiliza_credito_disponible, $id_medio_pago, $es_pago_parcial = false)
{
$datos_cobranza = array();
$importe_total_cobranza = 0;
......@@ -841,7 +845,29 @@ TODO:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$transaccion_cobranza->set_datos($datos);
$transaccion_cobranza->procesar();
//- tomar la cantidad disponible hasta el total de la deuda y guardarlo en la tabla de debitos
$venta->cambiar_estado(constantes::VENTA_COBRADA);
if ($es_pago_parcial) {
$venta->cambiar_estado(constantes::VENTA_PENDIENTE);
$importe_total_cobrado = sq_uv::catalogo_daos()->cobranzas()->obtener_importe_total_cobrado($transaccion_cobranza->get_id());
$importe_total_a_cobrar = round(($importe_total_cobranza - $importe_total_cobrado), 2);
$venta->set_importe_total_a_cobrar($importe_total_a_cobrar);
$venta->set_importe_total_cobrado($importe_total_cobrado);
$dao_ventas = sq_uv::catalogo_daos()->ventas();
$venta_articulo = $dao_ventas->get_articulos_por_venta($venta->get_id(),['id_articulo' => constantes::CUOTA_ID_ARTICULO])[0];
$articulo['id_venta_articulo'] = $venta_articulo['id_venta_articulo'];
$articulo['importe_total_cobrado'] = $importe_total_cobrado;
$venta->actualizar_importe_cobrado_venta_articulo($articulo);
} else {
$venta->cambiar_estado(constantes::VENTA_COBRADA);
}
$this->cantidad_ventas_cobradas++;
$this->importe_ventas_cobradas += $importe_total_cobranza;
//-- Guardar la venta.
......
......@@ -365,8 +365,9 @@ class notificacion extends modelo
$mensaje_parcial = str_replace('{comprobante_fecha}', substr($comp['fecha'], 0, strrpos($comp['fecha'], '.')), $mensaje_parcial);
$mensaje_parcial = str_replace('{comprobante_importe}', $comp['importe'], $mensaje_parcial);
$mensaje_parcial = str_replace('{comprobante_cae}', $comp['cae'], $mensaje_parcial);
$mensaje_parcial = str_replace('{cliente_razon_social}', $comp['cliente_razon_social'], $mensaje_parcial);
if (isset($comp['cliente_razon_social'])){
$mensaje_parcial = str_replace('{cliente_razon_social}', $comp['cliente_razon_social'], $mensaje_parcial);
}
$breaks = empty($mensaje) ? '' : '<br/><br/>';
$mensaje = $mensaje . $breaks . $mensaje_parcial;
}
......