Finish Smetar_CampagneMarketing_EliminaAttivita

This commit is contained in:
2023-11-24 15:55:53 +01:00
6 changed files with 124 additions and 35 deletions

View File

@@ -50,7 +50,7 @@ class CampagneMarketing {
$ret = self::getListCommesse(array("q" => $q));
if ($ret->is_OK()) {
$arr_commesse = $ret->get_data();
$arr_commesse = array_unique_multi(array_values(from($arr_commesse)->select(function ($x) {
$arr_commesse = array_unique_multi2(array_values(from($arr_commesse)->select(function ($x) {
return array("cod_anag" => $x["cod_jcom"] . " - " . $x["descrizione"], "cod_jcom" => $x["cod_jcom"], "descrizione" => $x["descrizione"]);
})->toArray()));
@@ -234,22 +234,65 @@ class CampagneMarketing {
public static function deleteAttivita($data) {
$activityId = $data["activityId"];
$flagDeleteProspect = array_get($data, "flagDeleteProspect");
$ret = self::getAttivita($activityId);
if ($ret->is_OK()) {
$retData = $ret->get_data();
$entityList = new EntityList();
$attivita = new EntityItem("stb_activity");
$attivita
->delete()
->set("activityId", $activityId);
$entityList->push($attivita);
if ($flagDeleteProspect) {
$codPpro = $retData["cod_anag_clie"];
$ptbPros = new EntityItem("ptb_pros");
$ptbPros
->delete()
->set("codPpro", $codPpro);
$entityList->push($ptbPros);
}
$query = new Query();
$query->importSqlFile('getSottoAttivita')
->setVar('parentActivityId', $activityId);
$ret = $query->toRet()->execute();
$childrenActivities = $ret->get_data();
foreach ($childrenActivities as $childActivity) {
$attivita = new EntityItem("stb_activity");
$attivita
->delete()
->set("activityId", $childActivity["activity_id"]);
$entityList->push($attivita);
}
$ret = $entityList->send();
$codJcom = $retData["cod_jcom"];
$processActivityId = $retData["parent_activity_id"];
$Attivita = new CampagneMarketing\Attivita;
$Attivita->activityId($activityId);
$ret = $Attivita->to_entityItem()->type("stb_activity")->delete()->send();
if ($ret->is_OK() && !self::isCommessaInterna($codJcom)) {
$ret = CampagneMarketing::getAttivitaProcesso(array("processActivityId" => $processActivityId));
if ($ret->is_OK()) {
$ret->set_string(base64_encode(CampagneMarketing::get_tbodyAttivita($ret->get_data())));
}
}
}
return $ret->set_data(null);
return $ret->set_data();
}
public static function get_persRifClie($tipoAnag, $codAnag) {
@@ -658,14 +701,15 @@ class CampagneMarketing {
$page = $data["page"];
$isNuovaAttivita = is_null($data["activity_id"]);
$codJcom = if_null($data["cod_jcom"], self::getCodJcomInterno());
$codJcom = if_null(array_get($data, "cod_jcom"), self::getCodJcomInterno());
$isCommessaInterna = self::isCommessaInterna($codJcom);
$arr_userName = array();
if ($isNuovaAttivita) { // NUOVA
if (is_string($data["user_name"])) {
$arr_userName[] = $data["user_name"];
} else if (is_array($data["user_name"])) {
if (is_string(array_get($data, "user_name"))) {
$arr_userName[] = array_get($data, "user_name");
} else if (is_array(array_get($data, "user_name"))) {
$arr_userName = $data["user_name"];
} else {
$ret = new Ret;

View File

@@ -82,7 +82,7 @@ if ($ret->is_OK()) {
<th>Città</th>
<th>Telefono</th>
<th>Email</th>
<!-- <th class="hidden-xs">Pulsanti</th>-->
<th>Pulsanti</th>
</tr>
</thead>
<tbody>
@@ -90,16 +90,29 @@ if ($ret->is_OK()) {
$arr_commesse = array_orderby($arr_commesse, "effective_time", SORT_DESC);
foreach ($arr_commesse as $item) {
?>
<tr data-activity_id="<?= $item["activity_id"] ?>">
<tr
data-activity_id="<?= $item["activity_id"] ?>"
data-flag_last_activity="<?= $item["flag_last_activity"] ?>"
data-tipologia="<?= $item["tipologia"] ?>"
>
<td class="text-center"><?= \Utility\Date::format($item["effective_time"], \Format::strftimeDMY) ?></td>
<td class="text-center text-uppercase"><?= $item["cod_jcom"] ?>
- <?= $item["descrizione"] ?></td>
<td class="text-center text-uppercase">
<?= $item["cod_jcom"] ?> - <?= $item["descrizione"] ?>
</td>
<td class="text-center"><?= $item["rag_soc"] ?></td>
<td class="text-center"><?= $item["citta"] ?></td>
<td class="text-center"><?= $item["telefono"] ?></td>
<td class="text-center"><?= $item["e_mail"] ?></td>
<td class="hidden-xs"><small
class="text-muted font-italic"><?= Utility\Str::shortens_words($item["note"], 50, true) ?></small>
<td class="text-center">
<button type="button" class="btn icbtn btn-primary bt_apriAttivita">
<i class="fa fa-search"></i>
</button>
<button type="button" class="btn icbtn btn-danger bt_eliminaAttivita">
<i class="fa fa-trash"></i>
</button>
</td>
<td class="hidden-xs">
<small class="text-muted font-italic"><?= Utility\Str::shortens_words($item["note"], 50, true) ?></small>
</td>
</tr>
<?php } ?>

View File

@@ -505,22 +505,16 @@ PopupFormAttivita.prototype._isCreatedFromUser = function () {
};
PopupFormAttivita.prototype._retrieveFormData = function () {
var self = this;
var $div = self._modalBox.$div;
const self = this;
const $div = self._modalBox.$div;
const formData = _checkForm.retrieveData($div, false, false);
var formData = _checkForm.retrieveData($div, false, true);
console.log(formData);
if (formData !== false) {
formData.activity_id = self._getActivityId();
formData.cod_jcom = self._isNuovaAttivita() && !self._isNuovaAttivitaSuccessiva() ? formData.cod_jcom : self._getCodJcom();
formData.parent_activity_id = self._isNuovaAttivita() && !self._isNuovaAttivitaSuccessiva() ? formData.process_activity_id : self._getParentActivityId();
formData.page = self._page;
/*
if(!self._isNuovaAttivita()){
delete data.activity_type_id;
delete data.tipo_anag;
delete data.cod_anag;
}*/
formData.estimated_time = self._dia.get_estimatedTime();
formData.estimated_endtime = null;

View File

@@ -87,12 +87,45 @@ var _campagneMarketing = {
$("input[name='flag_informativa']").parent().btn_checkbox();
$("input[name='flag_consenso']").parent().btn_checkbox();
$("#list-commesse tr[data-activity_id]").on("click", function (e) {
if (!$(e.target).is_button()) {
const activityId = $(this).getDataAttr("activity_id");
$(".bt_apriAttivita").on("click", function (e) {
const $tr = $(this).parents("tr");
const activityId = $tr.getAttr("data-activity_id");
_APP.location.href("?view=" + activityId, false);
_APP.location.href("?view=" + activityId, false);
});
$(".bt_eliminaAttivita").on("click", function (e) {
e.preventDefault();
const $tr = $(this).parents("tr");
const activityId = $tr.getAttr("data-activity_id");
const flagLastActivity = $tr.getAttr("data-flag_last_activity");
const tipologia = $tr.getAttr("data-tipologia");
const flagIsProspect = tipologia === "P";
const flagDeleteProspect = flagLastActivity && flagIsProspect;
let message = "Confermare l'eliminazione dell'attività?";
if (flagDeleteProspect) {
message = "Attenzione, questa è l'ultima attività del prospect, proseguendo verrà eliminato anche il prospect, continuare?";
}
new Ajax()
.post("deleteAttivita")
.data({
flagDeleteProspect: flagDeleteProspect,
activityId: activityId,
})
.confirmModal({
message: message,
style: "warning"
})
.noticeAsModal()
.onSuccess({
toast: {message: "Commessa eliminata con successo", timeout: 1},
callback: function () {
$tr.remove();
}
}).execute();
});
$("button[data-delete_commessa]").on("click", function (e) {

View File

@@ -0,0 +1,3 @@
SELECT *
FROM stb_activity
WHERE parent_activity_id = '[parentActivityId]'

View File

@@ -17,11 +17,13 @@ FROM (SELECT stb_activity.cod_jcom,
pcp.data_ins,
pcp.cod_ppro,
pcp.tipologia,
jc.descrizione
jc.descrizione,
CASE
WHEN (COUNT(stb_activity.activity_id) OVER (PARTITION BY cod_ppro) = 1) THEN 1
ELSE 0 END AS flag_last_activity
FROM stb_activity
LEFT JOIN pvw_clienti_prospect pcp on stb_activity.cod_anag = pcp.cod_ppro_anag AND
LEFT JOIN pvw_clienti_prospect pcp ON stb_activity.cod_anag = pcp.cod_ppro_anag AND
stb_activity.tipo_anag = pcp.tipologia
LEFT JOIN jtb_comt jc on stb_activity.cod_jcom = jc.cod_jcom
WHERE activity_type_id = 'GESTIONE CONTATTO'
) t
WHERE 1 = 1
LEFT JOIN jtb_comt jc ON stb_activity.cod_jcom = jc.cod_jcom
WHERE parent_activity_id IS NULL) t
WHERE activity_type_id = 'GESTIONE CONTATTO'