Cancellata gestione contatti_commesse_integry

This commit is contained in:
2024-06-04 12:13:51 +02:00
parent 3b95014998
commit 28a5c73926
76 changed files with 0 additions and 9863 deletions

View File

@@ -1837,231 +1837,6 @@
],
"requirePermission": true
},
"contatti_commesse_integry": {
"title": "Commesse",
"pages": "contatti_commesse_integry.php",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"icon": "icon-c.png",
"libs": [
"std-pkg",
"jquery-uiDatepicker",
"leaflet",
"firebase",
"select2",
"fullcalendar",
"tooltip"
],
"children": [
"catalogo",
"std_utils"
],
"requirePermission": true
},
"contatti_commesse_integry-clienti": {
"title": "Clienti",
"pages": "contatti_commesse_integry.php?clienti",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"libs": [
"std-pkg",
"jquery-uiDatepicker"
],
"requirePermission": true
},
"contatti_commesse_integry-agenda-mensile": {
"title": "Planner mensile",
"pages": "contatti_commesse_integry.php?monthPlanner",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"icon": "icon-calendar.png",
"libs": [
"std-pkg",
"jquery-uiDatepicker"
],
"requirePermission": true
},
"contatti_commesse_integry-agenda-settimanale": {
"title": "Planner settimanale",
"pages": "contatti_commesse_integry.php?weekPlanner",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"icon": "icon-calendar.png",
"libs": [
"std-pkg",
"jquery-uiDatepicker"
],
"requirePermission": true
},
"contatti_commesse_integry-agenda": {
"title": "Planner",
"pages": "contatti_commesse_integry.php?planner",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"icon": "icon-calendar-new.png",
"libs": [
"std-pkg",
"jquery-uiDatepicker"
],
"requirePermission": true
},
"contatti_commesse_integry-attivita": {
"title": "Attività",
"pages": "contatti_commesse_integry.php?attivita",
"position": [
{
"title": "Commesse",
"url": "contatti_commesse_integry.php"
},
{
"title": "Attività",
"url": "contatti_commesse_integry.php?attivita"
},
{
"title": "Clienti",
"url": "contatti_commesse_integry.php?clienti"
},
{
"title": "Planner mensile",
"url": "contatti_commesse_integry.php?monthPlanner"
},
{
"title": "Planner settimanale",
"url": "contatti_commesse_integry.php?weekPlanner"
},
{
"title": "Planner",
"url": "contatti_commesse_integry.php?planner"
}
],
"icon": "icon-a.png",
"sqlNotification": "index-notification.sql",
"libs": [
"std-pkg",
"jquery-uiDatepicker"
],
"requirePermission": true
},
"fabb_linea": {
"title": "Fabbisogno per Linea",
"pages": "fabb_linea.php",

View File

@@ -27,29 +27,6 @@
"name": "pdf_utilities-split",
"group": "Utilità"
},
{
"name": "contatti_commesse_integry",
"group": "Commesse e attività",
"usergroups": [
"2"
]
},
{
"name": "contatti_commesse_integry-attivita",
"group": "Commesse e attività",
"usergroups": [
"2",
"5",
"22"
]
},
{
"name": "contatti_commesse_integry-agenda",
"group": "Commesse e attività",
"usergroups": [
"2"
]
},
{
"name": "weather",
"group": "NULL",

View File

@@ -1,4 +0,0 @@
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteRule ^icon-calendar.png calendar_day.php [L]
</IfModule>

View File

@@ -1,37 +0,0 @@
<?php
include "../../classes/Cache.class.php";
include "../../classes/Utility.class.php";
include "../../functions.php";
Cache::set_cacheRoot("../../" . Cache::get_cacheRoot());
$path_calendarIcon = "icon-calendar.png";
$w = 48;
$h = 48;
$day = isset($day) ? $day : date("d");
$imgFilename = "calendar-{$day}_{$w}-{$h}";
$imgPath = Cache::get_filepath($imgFilename . ".png", true, true);
$Image = new Utility\Image;
if ($Image->importFromUrl($path_calendarIcon)) {
if (!file_exists($imgPath)) {
if ($Image->importFromUrl($path_calendarIcon)) {
if ($Image->resize($w, $h)) {
$Image->addText($day, 11, 33, "#D30308");
$Image->cacheAs($imgFilename)->showOutput();
} else {
echo "Ridimensionamento immagine fallito";
}
} else {
echo "Immagine non importata";
}
} else {
$Image->showImage($imgPath, $Image::MIME_PNG);
}
} else {
echo "Immagine non importata";
}
unset($Image);

View File

@@ -1,167 +0,0 @@
<?php
namespace ContattiCommesseIntegry;
class Attivita {
private $activityId = null;
private $activityTypeId = null;
private $parentActivityId = null;
private $activityDescription = false;
private $activityResultId = null;
private $codJcom = null;
private $tipoAnag = null;
private $codAnag = null;
private $note = null;
private $flagTipologia = null;
private $userName = null;
private $userCreator = null;
private $estimatedTimestamp = null;
private $estimatedEndTimestamp = null;
private $effectiveTimestamp = null;
private $effectiveEndTimestamp = null;
private $oraViewAct = null;
public function activityId($value) {
$this->activityId = $value;
return $this;
}
public function activityTypeId($value) {
$this->activityTypeId = $value;
return $this;
}
public function parentActivityId($value) {
$this->parentActivityId = $value;
return $this;
}
public function activityDescription($value) {
$this->activityDescription = $value;
return $this;
}
public function activityResultId($value) {
$this->activityResultId = $value;
return $this;
}
public function codJcom($value) {
$this->codJcom = $value;
return $this;
}
public function tipoAnag($value) {
$this->tipoAnag = $value;
return $this;
}
public function codAnag($value) {
$this->codAnag = $value;
return $this;
}
public function note($value) {
$this->note = $value;
return $this;
}
public function flagTipologia($value) {
$this->flagTipologia = $value;
return $this;
}
public function userName($value) {
$this->userName = $value;
return $this;
}
public function userCreator($value) {
$this->userCreator = $value;
return $this;
}
public function estimatedTimestamp($value) {
$this->estimatedTimestamp = $value;
return $this;
}
public function estimatedEndTimestamp($value) {
$this->estimatedEndTimestamp = $value;
return $this;
}
public function effectiveTimestamp($value) {
$this->effectiveTimestamp = $value;
return $this;
}
public function effectiveEndTimestamp($value) {
$this->effectiveEndTimestamp = $value;
return $this;
}
public function oraViewAct($value) {
$this->oraViewAct = $value;
return $this;
}
public static function get_infoActivityType($activityTypeId) {
if (!is_null($activityTypeId)) {
$Query = new \Query;
$Query->select("estimated_duration", "flag_tipologia")
->from("stb_activity_type")
->where("activity_type_id", $activityTypeId);
$Ret = $Query->firstRow()->toRet()->execute();
if ($Ret->is_OK()) {
$value = $Ret->get_data();
if (!is_null($value)) {
$estimatedDuration = $value["estimated_duration"];
if (is_null($estimatedDuration) || !is_numeric($estimatedDuration) || (float)$estimatedDuration == 0) {
$value["estimated_duration"] = null;
} else {
$value["estimated_duration"] = (float)$estimatedDuration;
}
return $value;
}
}
}
return null;
}
public function to_entityItem() {
$activityDuration = null;
$infoActivityType = self::get_infoActivityType($this->activityTypeId);
if (!is_null($infoActivityType)) {
$activityDuration = $infoActivityType["estimated_duration"];
$this->flagTipologia($infoActivityType["flag_tipologia"]);
}
$StbActivity = new \EntityItem();
$StbActivity->set("activityId", $this->activityId)
->set("parentActivityId", $this->parentActivityId)
->set("codJcom", $this->codJcom)
->set("activityTypeId", $this->activityTypeId)
->set("activityDescription", $this->activityDescription, true)
->set("activityResultId", $this->activityResultId, true)
->set("note", $this->note, true)
->set("flagTipologia", $this->flagTipologia)
->set("userName", $this->userName)
->set("userCreator", $this->userCreator)
->set("userModifier", \User::get_current_username())
->setDatetime("oraModAct", \Utility\Date::getNow())
->setDatetime("oraViewAct", $this->oraViewAct, true)
->setDatetime("estimatedTime", $this->estimatedTimestamp, true)
->setDatetime("estimatedEndtime", $this->estimatedEndTimestamp, true)
->setDatetime("effectiveTime", $this->effectiveTimestamp, true)
->setDatetime("effectiveEndtime", $this->effectiveEndTimestamp, true);
if (!is_null($this->tipoAnag)) {
$StbActivity->set("tipoAnag", $this->tipoAnag);
}
if (!is_null($this->codAnag)) {
$StbActivity->set("codAnag", $this->codAnag);
}
return $StbActivity;
}
}

View File

@@ -1,11 +0,0 @@
<?php
namespace ContattiCommesseIntegry;
class Filter {
public static function searchCommesse($q) {
}
}

View File

@@ -1,283 +0,0 @@
<?php
namespace ContattiCommesseIntegry;
class PanelFilter {
public static function getStatoDefault() {
$statoDefault = null;
$valoriDefault = self::getValoriDefault();
if (!is_null($valoriDefault) && isset($valoriDefault["stato"])) {
$statoDefault = $valoriDefault["stato"];
}
if (!is_null($statoDefault)) {
$Query = new \Query;
$Query->select("stato_commessa")->from("jtb_com_stato")->where("flag_attivo", "S")->orderBy("stato_commessa");
$Ret = $Query->toRet()->firstColumn()->execute();
if ($Ret->is_OK()) {
$statoDefault = in_array($statoDefault, $Ret->get_data()) ? $statoDefault : self::valueTutti();
}
}
if (is_null($statoDefault)) {
$statoDefault = self::valueTutti();
}
return $statoDefault;
}
private static function getValoriDefault() {
$GestSetup = new \GestSetup;
return $GestSetup->keySection("VALORE_DEFAULT_FILTRI")->asJson()->get();
}
public static function getOptionsDataRange() {
$View = new \Query;
$View->importSqlFile("list-commesseAperte")
->where("jtb_comt.cod_jcom IN (" . \ContattiCommesseIntegry::getSqlCommesseVisibili() . ")");
if (\System::is32Bit()) {
$View->whereDateLE("estimated_date", \Utility\Date::getMaxDay32Bit());
}
$Query = new \Query;
$Query->select("MIN(estimated_date) AS min", "MAX(estimated_date) AS max")
->fromView($View);
$Ret = $Query->firstRow()->toRet()->execute();
return $Ret->is_OK() ? $Ret->get_data() : null;
}
public static function getOptionsStatiCommessa() {
$rows = array();
$default = self::getStatoDefault();
$Query = new \Query;
$Query->importSqlFile("list-statiCommessaAttivi");
$Ret = $Query->toRet()->execute();
if ($Ret->is_OK()) {
$rows = array_merge(
array(array("stato_commessa" => self::valueTutti(), "title" => "TUTTI", "is_enabled" => true)),
$Ret->get_data()
);
foreach ($rows as $i => $row) {
$rows[$i]["isDefault"] = !is_null($default) && \Utility\Str::ciEquals($row["stato_commessa"], $default);
$rows[$i]["isEnabled"] = \boolValue($row["is_enabled"]);
$rows[$i]["stato_commessa"] = if_null($rows[$i]["stato_commessa"], self::valueNullo());
}
}
return $rows;
}
public static function valueNullo() {
return "NON DEFINITO";
}
public static function valueTutti() {
return "*";
}
public static function getFlagVediSoloMieAttivitaDefault() {
$GestSetup = new \GestSetup;
$flagOptions = $GestSetup->section("CONTATTI_COMMESSE")->keySection("VEDI_SOLO_MIE_ATTIVITA_DEFAULT")->asJson()->get();
if (!is_null($flagOptions)) { // [{"keyGroup":"2", "value":"N"}, {"keyGroup":"5", "value":"S"}, {"userName":"test", "value":"N"}]
$parsedPolicy = array("usergroups" => array(), "users" => array());
foreach ($flagOptions as $option) {
$v = \boolValue($option["value"]);
if (isset($option["keyGroup"])) {
$parsedPolicy["usergroups"][] = (!$v ? "!" : "") . $option["keyGroup"];
} else if (isset($option["userName"])) {
$parsedPolicy["users"][] = (!$v ? "!" : "") . $option["userName"];
}
}
return \PVM::processItemPolicyToCurrentUser($parsedPolicy);
}
return false;
}
public static function getAssegnatoADefault() {
if (\ContattiCommesseIntegry::isGruppoUtenteLimitato()) {
return \User::get_current_username();
} else {
return self::getFlagVediSoloMieAttivitaDefault() ? \User::get_current_username() : self::valueTutti();
}
}
public static function getOptionsAssegnatoA() {
if (\ContattiCommesseIntegry::isGruppoUtenteLimitato()) {
return array(array("user_name" => \User::get_current_username(), "full_name" => strtoupper(\User::get_current_fullname()), "isDefault" => true));
} else {
$default = self::getAssegnatoADefault();
$rows = array_map(
function ($item) use ($default) {
$item = array_pick($item, "user_name", "full_name");
$item["isDefault"] = \Utility\Str::ciEquals($item["user_name"], $default);
return $item;
},
\ContattiCommesseIntegry::getListUtentiAssegnatiA()
);
$rows = array_reverse(array_orderby($rows, "full_name"));
$rows[] = array("user_name" => self::valueTutti(), "full_name" => "TUTTI", "isDefault" => \Utility\Str::ciEquals(self::valueTutti(), $default));
$rows = array_reverse($rows);
return $rows;
}
}
public static function getOptionsTecnico() {
if (\ContattiCommesseIntegry::isGruppoUtenteLimitato()) {
return array(array("user_name" => \User::get_current_username(), "full_name" => strtoupper(\User::get_current_fullname()), "isDefault" => true));
} else {
$default = "*";
$rows = array_map(
function ($item) use ($default) {
$item = array_pick($item, "user_name", "full_name");
$item["isDefault"] = \Utility\Str::ciEquals($item["user_name"], $default);
return $item;
},
\ContattiCommesseIntegry::getListAgentiAssegnatiA(22)
);
$rows = array_reverse(array_orderby($rows, "full_name"));
$rows[] = array("user_name" => self::valueTutti(), "full_name" => "TUTTI", "isDefault" => \Utility\Str::ciEquals(self::valueTutti(), $default));
$rows = array_reverse($rows);
return $rows;
}
}
public static function getOptionsTipoAttivita() {
return array_column(\ContattiCommesseIntegry::getListTipiAttivita(), "activity_type_id");
}
public static function getOptionsDataAttivita() {
$Query = new \Query;
$Query->importSqlFile("list-attivita")
->setVar("user_name", \User::get_current_username())
->where("data_inizio IS NOT NULL")
->distinct("CONVERT(DATE, data_inizio)")
->orderBy("CONVERT(DATE, data_inizio)");
$Ret = $Query->toRet()->firstColumn()->execute();
return $Ret->is_OK() ? $Ret->get_data() : null;
}
public static function getOptionsDataIns() {
$Query = new \Query;
$Query->importSqlFile("list-attivita")
->setVar("user_name", \User::get_current_username())
->where("ora_ins_act IS NOT NULL")
->distinct("CONVERT(DATE, ora_ins_act)")
->orderBy("CONVERT(DATE, ora_ins_act)");
$Ret = $Query->toRet()->firstColumn()->execute();
return $Ret->is_OK() ? $Ret->get_data() : null;
}
public static function parseRawData($rawFilter, $switchFilter) {
$filter = array();
$rawFilter = \Utility::removeFilterArrayKeys($rawFilter);
// Rimuovo le stringhe vuote dalle chiavi, che altrimenti sarebbero entrate negli if(isset(...))
$rawFilter = array_map(function ($v) {
return ($v === "") ? null : $v;
}, $rawFilter);
if (isset($rawFilter["anag"]) && strlen($rawFilter["anag"]) > 0) {
$anag = \Utility::sanitize($rawFilter["anag"]);
$tipoAnag = $anag[0];
$codAnag = substr($anag, 1);
$Ret = \ContattiCommesseIntegry::getInfoCliente($tipoAnag, $codAnag);
if ($Ret->is_OK()) {
$filter["codAnag"] = $codAnag;
$filter["tipoAnag"] = $tipoAnag;
}
}
if (isset($rawFilter["com"])) {
$filter["codJcom"] = \Utility::sanitize($rawFilter["com"]);
}
if (in_array("stato", $switchFilter)) {
$parsedValue = \Utility::parseKeyRawFilter($rawFilter, "stato", self::valueNullo(), self::valueTutti(), self::getStatoDefault(), array_column(self::getOptionsStatiCommessa(), "stato_commessa"));
if ($parsedValue !== false) {
$filter["stato"] = $parsedValue;
}
}
if (isset($rawFilter["tipoAttivita"])) {
$filter["tipo_attivita"] = \Utility::sanitize($rawFilter["tipoAttivita"]);
}
if (isset($rawFilter["d"])) {
$filter["data_inizio"] = \Utility::sanitize($rawFilter["d"]);
}
if (isset($rawFilter["di"])) {
$filter["data_ins"] = \Utility::sanitize($rawFilter["di"]);
}
if (isset($rawFilter["d1"])) {
$filter["dataDa"] = \Utility::sanitize($rawFilter["d1"]);
}
if (isset($rawFilter["d2"])) {
$dataA = \Utility::sanitize($rawFilter["d2"]);
if (!isset($filter["dataDa"]) || (isset($filter["dataDa"]) && $dataA >= $filter["dataDa"])) {
$filter["dataA"] = $dataA;
}
}
if (isset($rawFilter["na"])) {
$filter["na"] = \Utility::sanitize($rawFilter["na"]) == "1";
}
if (isset($rawFilter["ne"])) {
$filter["ne"] = \Utility::sanitize($rawFilter["ne"]) == "1";
}
if (isset($rawFilter["desc"])) {
$filter["desc"] = \Utility::sanitize($rawFilter["desc"]);
}
if (isset($rawFilter["descrAtt"])) {
$filter["descrAtt"] = \Utility::sanitize($rawFilter["descrAtt"]);
}
if (isset($rawFilter["resultAtt"])) {
$filter["resultAtt"] = \Utility::sanitize($rawFilter["resultAtt"]);
}
if (in_array("assegnatoA", $switchFilter)) {
$parsedValue = \Utility::parseKeyRawFilter($rawFilter, "assegnatoA", self::valueNullo(), self::valueTutti(), self::getAssegnatoADefault(), array_column(self::getOptionsAssegnatoA(), "user_name"));
if ($parsedValue !== false) {
$filter["assegnatoA"] = $parsedValue;
}
}
if (in_array("tecnico", $switchFilter)) {
$parsedValue = \Utility::parseKeyRawFilter($rawFilter, "tecnico", self::valueNullo(), self::valueTutti(), "*", array_column(self::getOptionsTecnico(), "user_name"));
if ($parsedValue !== false) {
$filter["tecnico"] = $parsedValue;
}
}
if (isset($rawFilter["uc"])) {
$filter["uc"] = \Utility::sanitize($rawFilter["uc"]);
}
return $filter;
}
}

View File

@@ -1,83 +0,0 @@
<?php
namespace ContattiCommesseIntegry;
class Planner {
public static function getListRapportiniUtenteGiorno($day) {
$Query = new \Query();
$Query->importSqlFile("list-rapportini")
->setVar("user_name", \User::get_current_username())
->whereDate("data_lav", $day);
return $Query->toRet()->execute();
}
public static function getListAttivitaGiorno($data) {
$filter = \ContattiCommesseIntegry\PanelFilter::parseRawData($data["filter"], array("anag", "tipoAttivita", "assegnatoA"));
$Ret = \ContattiCommesseIntegry::getListAttivitaGiorno($data["day"], $filter);
if ($Ret->is_OK()) {
$arr_rows = $Ret->get_data();
foreach ($arr_rows as $i => $item) {
$arr_rows[$i] = self::completaDatiAttivita($item);
}
$Ret->set_data($arr_rows);
}
return $Ret;
}
public static function getGiorniUtiliAttivita($data) {
$filter = \ContattiCommesseIntegry\PanelFilter::parseRawData($data["filter"], array("anag", "tipoAttivita", "assegnatoA"));
$Ret = \ContattiCommesseIntegry::getListAttivitaPeriodo($data["limitDays"], $filter);
if ($Ret->is_OK()) {
$arr_rows = $Ret->get_data();
$retData = array("attivita" => array(), "rapportini" => array());
if (count($arr_rows) > 0) {
$retData["attivita"] = array_values(array_unique(from($arr_rows)->select(function ($x) {
return \Utility\Date::startOfDay($x["data_inizio"]);
})->toArray()));
sort($retData["attivita"]);
}
$Ret = \ContattiCommesseIntegry::getListRapportiniPeriodo($data["limitDays"]);
if ($Ret->is_OK()) {
$arr_rows = $Ret->get_data();
$retData["rapportini"] = array_values(array_unique(from($arr_rows)->select(function ($x) {
return \Utility\Date::startOfDay($x["data_lav"]);
})->toArray()));
sort($retData["rapportini"]);
$Ret->set_data($retData);
}
}
return $Ret;
}
public static function completaDatiAttivita($item) {
$isCommessaInterna = \ContattiCommesseIntegry::isCommessaInterna($item["cod_jcom"]);
$style = is_null(\ContattiCommesseIntegry::getCodJcomInterno()) ?
($item["is_closed"] == 1 ? "success" : "warning") :
($isCommessaInterna ? "default" : "info");
$item["style"] = $style;
$item["is_commessaInterna"] = $isCommessaInterna;
$item["descr_commessa"] = htmlentities($item["descr_commessa"]);
$item["is_assignedToUser"] = $item["user_name"] == \User::get_current_username();
$item["is_createdFromUser"] = boolValue($item["is_createdFromUser"]);
$item["maintext"] = $item["descr_commessa"];
if ($isCommessaInterna) {
if (!is_null($item["tipo_anag_clie"]) && !is_null($item["cod_anag_clie"])) {
$item["maintext"] = $item["rag_soc_clie"];
} else {
$item["maintext"] = $item["activity_description"];
}
}
$RetAllegati = \Allegati\Attivita::get_filelist($item["activity_id"]);
$item["countAllegati"] = $RetAllegati->is_OK() ? count($RetAllegati->get_data()) : 0;
$item["rowAttivita"] = \Utility::B64JSON_stringify(array_pick($item, "data_inizio", "data_fine", "stato", "descr_commessa", "cod_jcom", "activity_id", "estimated_time", "estimated_endtime", "effective_time", "effective_endtime", "user_name", "activity_type_id", "activity_description", "activity_result_id", "parent_activity_id", "note", "is_createdFromUser", "tipo_anag_clie", "cod_anag_clie", "rag_soc_clie", "is_commessaInterna", "countAllegati"));
return array_pick($item, "data_inizio", "data_fine", "is_assignedToUser", "stato", "maintext", "activity_description", "rowAttivita", "descr_commessa", "style", "activity_type_id", "user_name", "is_commessaInterna", "note", "parent_activity_id", "cod_jcom", "citta", "prov");
}
}

View File

@@ -1 +0,0 @@
#list-commesse th.day{background-color:#eee}#list-commesse .fa-circle{font-size:.8em}#list-commesse .fa-circle.text-success{color:#7d7}#list-commesse .fa-circle.text-warning{color:#ffb347}#list-commesse tr[data-cod_jcom]{cursor:pointer}#list-commesse tr[data-cod_jcom] .badge{white-space:normal}#list-commesse hr{margin-top:2px;margin-bottom:2px}#list-clie{font-size:12px}#list-clie select#go-commessa{max-width:150px}@media(max-width: 767px){.panel[data-processo]>.panel-body{padding:0;overflow-x:auto}}.modal-box label{margin-bottom:0}.pagination{margin:0}#m_tbAllegati .fa.fileicon{font-size:1.3em}.bt_resetCommessa,.bt_resetCliente{width:40px}.bt_resetCommessa:not(.wait) .fa-spin,.bt_resetCliente:not(.wait) .fa-spin{display:none}.bt_resetCommessa.wait .fa-times,.bt_resetCliente.wait .fa-times{display:none}.fc-daygrid-day-number{font-weight:bold;margin:3px}table.fc-scrollgrid.fc-scrollgrid-liquid a,.fc-popover a{color:unset}table.fc-scrollgrid.fc-scrollgrid-liquid .fc-daygrid-event:hover,table.fc-scrollgrid.fc-scrollgrid-liquid .fc-daygrid-dot-event.fc-event-mirror,.fc-popover .fc-daygrid-event:hover,.fc-popover .fc-daygrid-dot-event.fc-event-mirror{filter:brightness(85%)}a.fc-daygrid-block-event .calendarEvent{background-image:url("data:image/svg+xml,%3Csvg width='100' height='20' viewBox='0 0 100 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.184 20c.357-.13.72-.264 1.088-.402l1.768-.661C33.64 15.347 39.647 14 50 14c10.271 0 15.362 1.222 24.629 4.928.955.383 1.869.74 2.75 1.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888 13.278 60.562 12 50 12c-10.626 0-16.855 1.397-26.66 5.063l-1.767.662c-2.475.923-4.66 1.674-6.724 2.275h6.335zm0-20C13.258 2.892 8.077 4 0 4V2c5.744 0 9.951-.574 14.85-2h6.334zM77.38 0C85.239 2.966 90.502 4 100 4V2c-6.842 0-11.386-.542-16.396-2h-6.225zM0 14c8.44 0 13.718-1.21 22.272-4.402l1.768-.661C33.64 5.347 39.647 4 50 4c10.271 0 15.362 1.222 24.629 4.928C84.112 12.722 89.438 14 100 14v-2c-10.271 0-15.362-1.222-24.629-4.928C65.888 3.278 60.562 2 50 2 39.374 2 33.145 3.397 23.34 7.063l-1.767.662C13.223 10.84 8.163 12 0 12v2z' fill='%239C92AC' fill-opacity='0.2' fill-rule='evenodd'/%3E%3C/svg%3E")}a.fc-daygrid-block-event{border:unset !important;color:#fff;background-color:unset !important}.fc-day-today{background:#f2f9fd !important;text-align:center;vertical-align:middle}.fc-day-today .fc-daygrid-day-number{width:27px;height:27px;color:#fff !important;background-color:#4285f4;border-radius:50%}.fc-day-sun>.fc-daygrid-day-frame>.fc-daygrid-day-top{text-align:center;vertical-align:middle}.fc-day-sun>.fc-daygrid-day-frame>.fc-daygrid-day-top .fc-daygrid-day-number{width:27px;height:27px;color:#fff;background-color:#f3424e;border-radius:50%}.tooltip{opacity:1 !important;z-index:10000}.tooltip-inner{background-color:unset}.tooltip-inner:after{content:attr(title);position:absolute;left:20%;bottom:24px;width:128px;background-color:#ff0;opacity:0;-webkit-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}.tooltip-inner:hover:after{opacity:1}.fc .fc-daygrid-body .fc-daygrid-day-top{flex-direction:row;justify-content:space-between}.fc .fcEventButton{padding:4px;cursor:pointer;color:#081922}.fc .fcEventButton:hover{color:#3788d8}@media(max-width: 800px){.fc .fc-toolbar-title{font-size:19px !important;text-align:center}}/*# sourceMappingURL=main.css.map */

View File

@@ -1,225 +0,0 @@
<div id="form-attivita">
<div class="row">
<div class="col-sm-2 form-group">
<label>Codice Commessa</label>
<div class="input-group">
<input type="text" name="cod_jcom" class="form-control" autocomplete="off" disabled/>
</div>
</div>
<div class="col-sm-5 form-group">
<label>Commessa <small class="font-weight-normal">(Non compilare se si tratta di un'attivit&agrave;
interna)</small></label>
<div class="input-group">
<input type="text" name="descr_commessa" class="form-control" placeholder="Attivit&agrave; interna"
autocomplete="off"/>
<input type="hidden" name="process_activity_id" autocomplete="off"/>
<input type="hidden" name="cod_jcom" autocomplete="off"/>
<span class="input-group-btn">
<button class="btn btn-default bt_resetCommessa" type="button">
<i class="fas fa-times text-muted"></i>
<i class="fas fa-circle-notch fa-spin"></i>
</button>
</span>
</div>
</div>
<div class="col-sm-4 form-group">
<label>Cliente</label>
<div class="input-group">
<input type="text" name="rag_soc" class="form-control" autocomplete="off"/>
<span class="input-group-btn">
<button class="btn btn-default bt_resetCliente" type="button">
<i class="fa fa-times text-muted"></i>
<i class="fas fa-circle-notch fa-spin text-muted"></i>
</button>
</span>
</div>
<input type="hidden" name="cod_anag" autocomplete="off"/>
<input type="hidden" name="tipo_anag" autocomplete="off"/>
</div>
<div class="col-sm-1">
<br/>
<button class="btn btn-success" id="bt_nuovoCliente">
<i class="fas fa-plus"></i>
</button>
</div>
</div>
<div class="row">
<div class="col-sm-6 form-group">
<label>Commessa</label><br/>
<span data-text="cod_jcom" class="font-weight-bold small text-uppercase"></span>
<span data-text="descr_commessa" class="text-muted small text-uppercase"></span>
</div>
<div class="col-sm-6 form-group">
<label>Cliente</label><br/>
<button class="bt_openDetClie btn btn-xs btn-default" type="button" data-tipo_anag="" data-cod_anag=""
data-cod_vdes="">
<i class="fa fa-user-circle text-primary"></i>
<span data-text="cod_anag_clie" class="font-weight-bold text-uppercase"></span>
<span data-text="rag_soc_clie" class="text-muted text-uppercase"></span>
</button>
</div>
</div>
<div class="row">
<div class="col-sm-6 form-group">
<label>Agente</label>
<input type="text" name="agente" class="form-control" autocomplete="off" disabled/>
</div>
<div class="col-sm-6 form-group">
<label>Tecnico</label>
<input type="text" name="tecnico" class="form-control" autocomplete="off" disabled/>
</div>
</div>
<div class="row">
<div class="col-sm-6 form-group">
<label>Tipo attivit&agrave;</label>
<select name="activity_type_id" class="form-control" autocomplete="off" data-required>
<?php
$arr_tipiAttivita = ContattiCommesseIntegry::getListTipiAttivita();
foreach ($arr_tipiAttivita as $item) {
?>
<option value="<?= $item["activity_type_id"] ?>"
data-estimated_duration="<?= $item["estimated_duration"] ?>" <?= \ContattiCommesseIntegry::isTipoAttivitaDefault($item["activity_type_id"]) ? "selected" : "" ?> ><?= $item["activity_type_id"] ?></option>
<?php } ?>
</select>
</div>
<div class="col-sm-6">
<label>&nbsp;</label><br/>
<button class="btn btn-default btn-block btOpenModalAllegati">
<i class="fas fa-paperclip text-success"></i>
Allegati <span class="badge badge-default badge-sm">0</span>
</button>
</div>
</div>
<div class="row">
<div class="col-sm-5 form-group">
<label>Assegnata a</label>
<div class="input-group">
<select name="user_name" class="form-control" autocomplete="off" data-required>
<?php
$arr_utenti = array_orderby(ContattiCommesseIntegry::getListUtentiAssegnatiA(), "full_name");
foreach ($arr_utenti as $item) {
?>
<option value="<?= $item["user_name"] ?>" <?= count($arr_utenti) == 1 ? "selected" : "" ?>><?= $item["full_name"] ?></option>
<?php } ?>
</select>
<span class="input-group-addon cursor-pointer bt_viewWeekActivities" title="Vedi Attività Settimanali"
data-toggle="tooltip" data-placement="top">
<i class="fa fa-calendar-check text-success"></i>
</span>
</div>
</div>
<div class="col-sm-3 form-group">
<label>Pianificata il</label>
<div class="input-group">
<input type="text" class="form-control" name="data_inizioStimata" data-required autocomplete="off"/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<div class="col-sm-4" id="timePickers">
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col-xs-6 form-group pr-0">
<label>Dalle</label>
<input type="text" name="ora_inizioStimata" class="form-control no-border-radius-right"
data-required autocomplete="off"/>
</div>
<div class="col-xs-6 form-group pl-0">
<label>&nbsp;</label>
<input type="text" name="min_inizioStimata" class="form-control no-border-radius-left"
data-required autocomplete="off"/>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-xs-6 form-group pr-0">
<label>Alle</label>
<input type="text" name="ora_fineStimata" class="form-control no-border-radius-right"
data-required autocomplete="off"/>
</div>
<div class="col-xs-6 form-group pl-0">
<label>&nbsp;</label>
<input type="text" name="min_fineStimata" class="form-control no-border-radius-left"
data-required autocomplete="off"/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 form-group">
<label>Descrizione</label>
<input class="form-control" type="text" name="activity_description" data-required autocomplete="off"
maxlength="1024"/>
</div>
</div>
<div class="row">
<div class="col-sm-12 form-group">
<label>Note</label>
<input class="form-control" type="text" name="note" autocomplete="off" maxlength="1024"/>
</div>
</div>
<div class="row">
<div class="col-sm-5 form-group">
<label>Esito</label>
<select name="activity_result_id" class="form-control" autocomplete="off">
<option></option>
<?php
$arr_esiti = ContattiCommesseIntegry::get_esitiAttivita();
foreach ($arr_esiti as $item) {
?>
<option value="<?= $item["activity_result_id"] ?>"
data-flag_activity_result="<?= $item["flag_activity_result"] ?>"><?= $item["activity_result_id"] ?></option>
<?php } ?>
</select>
</div>
<div class="col-sm-3 form-group">
<label>Processata il</label>
<div class="input-group">
<input type="text" class="form-control" name="data_inizioEffettiva" data-required autocomplete="off"/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<div class="col-sm-4" id="timePickers">
<div class="row">
<div class="col-sm-6">
<div class="row">
<div class="col-xs-6 form-group pr-0">
<label>Dalle</label>
<input type="text" name="ora_inizioEffettiva" class="form-control no-border-radius-right"
data-required autocomplete="off"/>
</div>
<div class="col-xs-6 form-group pl-0">
<label>&nbsp;</label>
<input type="text" name="min_inizioEffettiva" class="form-control no-border-radius-left"
data-required autocomplete="off"/>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-xs-6 form-group pr-0">
<label>Alle</label>
<input type="text" name="ora_fineEffettiva" class="form-control no-border-radius-right"
data-required autocomplete="off"/>
</div>
<div class="col-xs-6 form-group pl-0">
<label>&nbsp;</label>
<input type="text" name="min_fineEffettiva" class="form-control no-border-radius-left"
data-required autocomplete="off"/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,199 +0,0 @@
<?php
$Ret = StdUtils::getResources(array("zone", "nazioni", "tipiCliente"));
Utility::includeResourceModule("common/common.js");
if ($Ret->is_OK()) {
$resources = $Ret->get_data();
$arr_zone = $resources["zone"];
$arr_nazioni = $resources["nazioni"];
$arr_tipiCliente = $resources["tipiCliente"];
Utility::includeResourceModule("common/activity.js");
?>
<div id="form-cliente">
<div class="row">
<div class="col-xs-12 col-sm-9 col-md-4 pr-0 mt-8">
<div class="form-group">
<label>Nominativo / Ragione Sociale</label>
<input name="rag_soc" class="form-control text-uppercase no-border-radius-right" type="text"
autocomplete="off" maxlength="40" data-required/>
</div>
<input name="tipo_anag" type="hidden" value="<?= isset($cliente) ? $cliente["tipo_anag"] : "P" ?>"
autocomplete="off"/>
<input name="cod_anag" type="hidden" value="<?= isset($cliente) ? $cliente["cod_anag"] : "" ?>"
autocomplete="off"/>
</div>
<div class="col-xs-12 col-sm-9 col-md-3 pl-0 mt-8">
<div class="form-group">
<label>&nbsp;</label>
<input name="rag_soc2" class="form-control text-uppercase no-border-radius-left" type="text"
value="<?= isset($cliente) ? htmlentities($cliente["rag_soc2"]) : "" ?>" autocomplete="off"
maxlength="40"/>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<label>Tipologia</label>
<select name="cod_vtip" class="form-control" autocomplete="off">
<option value=""></option>
<?php
foreach ($arr_tipiCliente as $item) {
$selected = isset($cliente) && $cliente["cod_vtip"] == $item["cod_vtip"];
?>
<option value="<?= $item["cod_vtip"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option>
<?php } ?>
</select>
</div>
<div class="col-xs-12 col-sm-3 col-md-2 mt-8">
<label>Zona</label>
<select name="cod_vzon" class="form-control" autocomplete="off">
<option value=""></option>
<?php
foreach ($arr_zone as $item) {
$selected = isset($cliente) ? $cliente["cod_vzon"] == $item["cod_vzon"] : "";
?>
<option value="<?= $item["cod_vzon"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option>
<?php } ?>
</select>
</div>
<div class="clearfix visible-md visible-lg"></div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<div class="form-group">
<label>P. IVA</label>
<input name="part_iva" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["part_iva"] : "" ?>" autocomplete="off"
maxlength="20"/>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<label>Cod. Fiscale</label>
<input name="cod_fisc" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cod_fisc"] : "" ?>" autocomplete="off" maxlength="16"/>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mt-8">
<label>PEC</label>
<input name="e_mail_pec" class="form-control text-lowercase" type="email"
value="<?= isset($cliente) ? $cliente["e_mail_pec"] : "" ?>" autocomplete="off" maxlength="255"/>
</div>
<div class="col-xs-12 col-sm-2 col-md-2 mt-8">
<label>Cod. univoco</label>
<input name="cuu_pa" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cuu_pa"] : "" ?>" autocomplete="off" maxlength="7"/>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 mt-8">
<label>Indirizzo</label>
<input name="indirizzo" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["indirizzo"] : "" ?>" maxlength="80" autocomplete="off"/>
</div>
<div class="col-sm-2 mt-8">
<label>CAP</label>
<input name="cap" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cap"] : "" ?>" maxlength="10" autocomplete="off"/>
</div>
<div class="col-md-3 col-sm-4 mt-8">
<div class="form-group">
<label>Citta</label>
<input name="citta" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["citta"] : "" ?>" maxlength="30" autocomplete="off"/>
</div>
</div>
<div class="col-md-1 col-sm-2 mt-8">
<label>Prov.</label>
<input name="prov" class="form-control text-uppercase" type="text" maxlength="20"
value="<?= isset($cliente) ? $cliente["prov"] : "" ?>" autocomplete="off"/>
</div>
<div class="col-md-2 col-sm-3 mt-8">
<label>Nazione</label>
<select name="nazione" class="form-control">
<?php
foreach ($arr_nazioni as $item) {
$selected = isset($cliente) ? $cliente["nazione"] == $item["nazione"] : $item["nazione"] == "IT";
?>
<option value="<?= $item["nazione"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option>
<?php } ?>
</select>
</div>
<div class="clearfix visible-md visible-lg"></div>
<div class="col-md-4 col-sm-3 mt-8">
<label>Telefono</label>
<input name="telefono" class="form-control text-uppercase" type="tel" maxlength="40"
value="<?= isset($cliente) ? $cliente["telefono"] : "" ?>" autocomplete="off"/>
</div>
<div class="col-md-4 col-sm-4 mt-8">
<label>E-Mail</label>
<input name="e_mail" class="form-control text-lowercase" type="email"
value="<?= isset($cliente) ? $cliente["e_mail"] : "" ?>" maxlength="40" autocomplete="off"/>
</div>
<div class="col-sm-2 mt-8">
<label>&nbsp;</label><br/>
<button type="button" class="btn btn-default btn-block">
Informativa privacy
<input type="checkbox" class="hidden" name="flag_informativa" data-checked_value="S"
data-unchecked_value="N" <?= isset($cliente) && boolValue($cliente["flag_informativa"]) ? "checked" : "" ?> />
</button>
</div>
<div class="col-sm-2 mt-8">
<label>&nbsp;</label><br/>
<button type="button" class="btn btn-default btn-block">
Trattamento dati
<input type="checkbox" class="hidden" name="flag_consenso" data-checked_value="S"
data-unchecked_value="N" <?= isset($cliente) && boolValue($cliente["flag_consenso"]) ? "checked" : "" ?> />
</button>
</div>
</div>
</div>
<div id="form-persRif" class="mt-40">
<h4 class="text-primary">
Persone di riferimento
<button id="bt_newPersRif" class="<?= isset($cliente) ? "invisible" : "" ?> btn btn-xs btn-default">
<span class="text-success"><i class="fa fa-user-plus"></i> Aggiungi</span>
</button>
</h4>
<?php
$Ret = new Ret;
$arr_persRif = array();
if (isset($cliente)) {
$Ret = CampagneMarketing::get_persRifClie($cliente["tipo_anag"], $cliente["cod_anag"]);
if ($Ret->is_OK()) {
$arr_persRif = $Ret->get_data();
}
}
if ($Ret->is_OK()) { ?>
<table class="table table-striped small">
<thead>
<tr>
<th class="text-left col-sm-3">Nominativo</th>
<th class="text-left col-sm-3">Mansione</th>
<th class="text-left col-sm-2">Telefono</th>
<th class="text-left col-sm-2">Num. Cellulare</th>
<th class="text-left col-sm-2">E-Mail</th>
<th style="width:30px"></th>
</tr>
</thead>
<tbody>
<?php
foreach ($arr_persRif as $persRif) {
include Controller::current_gestpath_html("tr-pers_rif.php");
}
?>
</tbody>
</table>
<?php
} else {
$Ret->showErrorAlert();
}
?>
</div>
<?php
} else {
$Ret->showErrorAlert();
}
?>

View File

@@ -1,20 +0,0 @@
<tr>
<td>
<input type="text" class="form-control text-uppercase input-xs" name="persona_rif" maxlength="40" data-required
value="<?= isset($persRif) ? $persRif["persona_rif"] : "" ?>"/>
<input type="hidden" name="id_pers_rif" value="<?= isset($persRif) ? $persRif["id_pers_rif"] : "" ?>"/>
</td>
<td><input type="text" class="form-control text-uppercase input-xs" name="mansione" maxlength="40"
value="<?= isset($persRif) ? $persRif["mansione"] : "" ?>"/></td>
<td><input type="tel" class="form-control input-xs" name="telefono" maxlength="40"
value="<?= isset($persRif) ? $persRif["telefono"] : "" ?>"/></td>
<td><input type="tel" class="form-control input-xs" name="num_cellulare" maxlength="40"
value="<?= isset($persRif) ? $persRif["num_cellulare"] : "" ?>"/></td>
<td><input type="email" class="form-control input-xs" name="e_mail" maxlength="40"
value="<?= isset($persRif) ? $persRif["e_mail"] : "" ?>"/></td>
<td>
<button class="btn btn-xs btn-default invisible remove_persRif" type="button">
<i class="fas fa-user-minus text-danger"></i>
</button>
</td>
</tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -1,96 +0,0 @@
<?php
if (isset($_GET["src_clienteCommessa"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["src_clienteCommessa"]);
ContattiCommesseIntegry::src_clienteCommessa($data)->display();
} else if (isset($_GET["src_commessa"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["src_commessa"]);
ContattiCommesseIntegry::src_commessa($data)->display();
} else if (isset($_GET["get_cliente"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["get_cliente"]);
ContattiCommesseIntegry::getInfoCliente($data["tipo_anag"], $data["cod_anag"])->display();
} else if (isset($_GET["getPdfCommessa"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getPdfCommessa"]);
ContattiCommesseIntegry::getPdfCommessa($data)->display();
} else if (isset($_POST["save_visita"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["save_visita"]);
ContattiCommesseIntegry::save_visita($data)->display();
} else if (isset($_GET["getListCommesseAperteCliente"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getListCommesseAperteCliente"]);
ContattiCommesseIntegry::getListCommesseAperteCliente($data)->display();
} else if (isset($_GET["getAttivitaProcesso"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getAttivitaProcesso"]);
ContattiCommesseIntegry::getAttivitaProcesso($data)->display();
} else if (isset($_POST["saveAttivita"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["saveAttivita"]);
ContattiCommesseIntegry::saveAttivita($data)->display();
} else if (isset($_POST["deleteAttivita"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["deleteAttivita"]);
ContattiCommesseIntegry::deleteAttivita($data)->display();
} else if (isset($_POST["save_cliente"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["save_cliente"]);
ContattiCommesseIntegry::save_cliente($data)->display();
} else if (isset($_POST["save_prospect"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["save_prospect"]);
ContattiCommesseIntegry::save_prospect($data)->display();
} else if (isset($_POST["save_commessa"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["save_commessa"]);
ContattiCommesseIntegry::save_commessa($data)->display();
} else if (isset($_POST["delete_commessa"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["delete_commessa"]);
ContattiCommesseIntegry::delete_commessa($data)->display();
} else if (isset($_GET["check_partIvaAnag"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["check_partIvaAnag"]);
ContattiCommesseIntegry::check_partIvaAnag($data)->display();
} else if (isset($_GET["check_codFiscAnag"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["check_codFiscAnag"]);
ContattiCommesseIntegry::check_codFiscAnag($data)->display();
} else if (isset($_GET["exportExcelCommesseFiltrate"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["exportExcelCommesseFiltrate"]);
ContattiCommesseIntegry::exportExcelCommesseFiltrate($data)->display();
} else if (isset($_GET["get_pdfOrder"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["get_pdfOrder"]);
Catalogo\Ordine::get_pdf($data)->display();
} else if (isset($_GET["popup-rapportiniUtente"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["popup-rapportiniUtente"]);
include "popup-rapportiniUtente.php";
} else if (isset($_GET["popup-clie"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["popup-clie"]);
include "popup-clie.php";
} else if (isset($_GET["get_listSuggActivityDescription"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["get_listSuggActivityDescription"]);
ContattiCommesseIntegry::get_listSuggActivityDescription($data)->display();
} else if (isset($_POST["moveAttivita"])) {
$data = Utility::sanitizeB64JSON_parse($_POST["moveAttivita"]);
ContattiCommesseIntegry::moveAttivita($data)->display();
} else if (isset($_GET["getListMansioniPersRif"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getListMansioniPersRif"]);
ContattiCommesseIntegry::getListMansioniPersRif($data)->display();
} else if (isset($_GET["get_persRifClie"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["get_persRifClie"]);
$tipoAnag = $data["tipoAnag"];
$codAnag = $data["codAnag"];
ContattiCommesseIntegry::get_persRifClie($tipoAnag, $codAnag)->set_errorTitle("Persone di rif. non acquisite")->display();
} else if (isset($_GET["get_destinazioniClie"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["get_destinazioniClie"]);
$tipoAnag = $data["tipoAnag"];
$codAnag = $data["codAnag"];
ContattiCommesseIntegry::getDestinazioniCliente($tipoAnag, $codAnag)->display();
} else if (isset($_GET["getGiorniUtiliAttivita"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getGiorniUtiliAttivita"]);
ContattiCommesseIntegry\Planner::getGiorniUtiliAttivita($data)->display();
} else if (isset($_GET["getListAttivitaGiorno"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getListAttivitaGiorno"]);
ContattiCommesseIntegry\Planner::getListAttivitaGiorno($data)->display();
} else if (isset($_GET["getListAttivitaSettimana"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getListAttivitaSettimana"]);
ContattiCommesseIntegry::getListAttivitaSettimana($data)->display();
} else if (isset($_GET["getListFullCalendar"])) {
$data = Utility::sanitizeB64JSON_parse($_GET["getListFullCalendar"]);
ContattiCommesseIntegry::getListFullCalendar($data)->display();
} else if (isset($_GET["buildAvviso"])) {
$att = Utility::sanitizeB64JSON_parse($_GET["buildAvviso"]);
ContattiCommesseIntegry::buildAvviso($att);
} else if (Controller::is_ajaxRequest()) {
$Ret = new Ret;
$Ret->set_errorCode(ErrorHandler::UNEXPECTED_AJAX_METHOD)->display();
}

View File

@@ -1,175 +0,0 @@
<?php
if (!$flag_editOnly) {
$classes_selected = "btn-info";
$classes_unselected = "btn-default";
?>
<div class="row mb-10">
<?php
if (!isset($cliente)) {
?>
<div class="col-xs-12 col-sm-9 col-md-3 mt-8">
<div class="form-group">
<label>Importa da commessa</label>
<input id="src-commessa" class="form-control text-uppercase" type="text" autocomplete="off"/>
</div>
</div>
<?php } ?>
<div class="col-md-5 col-md-offset-<?= isset($cliente) ? 5 : 2 ?> col-sm-6 col-sm-offset-<?= isset($cliente) ? 3 : 0 ?> col-xs-8">
<label>&nbsp;</label>
<div class="btn-group btn-block btn-group-sm mt-8 pull-right">
<button data-action="clie-nuovo"
class="col-xs-6 radio_btn text-truncate btn <?= isset($cliente) ? $classes_unselected : $classes_selected ?>"
type="button">
<i class="fa fa-user-plus"></i> Nuovo<span class="hidden-xs"> cliente</span>
</button>
<button data-action="clie-esistente"
class="col-xs-6 text-truncate radio_btn btn <?= isset($cliente) ? $classes_selected : $classes_unselected ?>"
type="button">
<i class="fa fa-address-card"></i> <span class="hidden-xs">Cliente gi&agrave; censito</span><span
class="visible-xs-inline">Gi&agrave; censito</span>
</button>
</div>
</div>
<div class="col-md-2 col-sm-3 col-xs-4">
<label>&nbsp;</label>
<button id="bt_formClieReset" class="btn btn-sm btn-block btn-default mt-8 text-truncate" disabled
type="button">
<i class="fa fa-times-circle text-danger"></i> Reset<span class="hidden-xs"> campi</span>
</button>
</div>
</div><?php
} ?>
<div id="form-cliente">
<div class="row">
<div class="col-xs-12 col-sm-9 col-md-4 pr-0 mt-8">
<div class="form-group">
<label>Nominativo / Ragione sociale</label>
<input name="rag_soc" class="form-control text-uppercase no-border-radius-right" type="text"
value="<?= isset($cliente) ? htmlentities($cliente["rag_soc"]) : "" ?>" autocomplete="off"
maxlength="40" data-required/>
</div>
<input name="tipo_anag" type="hidden" value="<?= isset($cliente) ? $cliente["tipo_anag"] : "P" ?>"
autocomplete="off"/>
<input name="cod_anag" type="hidden" value="<?= isset($cliente) ? $cliente["cod_anag"] : "" ?>"
autocomplete="off"/>
</div>
<div class="col-xs-12 col-sm-9 col-md-3 pl-0 mt-8">
<div class="form-group">
<label>&nbsp;</label>
<input name="rag_soc2" class="form-control text-uppercase no-border-radius-left" type="text"
value="<?= isset($cliente) ? htmlentities($cliente["rag_soc2"]) : "" ?>" autocomplete="off"
maxlength="40"/>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<label>Tipologia</label>
<select name="cod_vtip" class="form-control" autocomplete="off">
<option value=""></option><?php
foreach ($arr_tipiCliente as $item) {
$selected = isset($cliente) && $cliente["cod_vtip"] == $item["cod_vtip"];
?>
<option value="<?= $item["cod_vtip"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option><?php
} ?>
</select>
</div>
<div class="col-xs-12 col-sm-3 col-md-2 mt-8">
<label>Zona</label>
<select name="cod_vzon" class="form-control" autocomplete="off">
<option value=""></option><?php
foreach ($arr_zone as $item) {
$selected = isset($cliente) ? $cliente["cod_vzon"] == $item["cod_vzon"] : "";
?>
<option value="<?= $item["cod_vzon"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option><?php
} ?>
</select>
</div>
<div class="clearfix visible-md visible-lg"></div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<div class="form-group">
<label>P. IVA</label>
<input name="part_iva" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["part_iva"] : "" ?>" autocomplete="off" maxlength="20"/>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<label>Cod. Fiscale</label>
<input name="cod_fisc" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cod_fisc"] : "" ?>" autocomplete="off" maxlength="16"/>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mt-8">
<label>PEC</label>
<input name="e_mail_pec" class="form-control text-lowercase" type="email"
value="<?= isset($cliente) ? $cliente["e_mail_pec"] : "" ?>" autocomplete="off" maxlength="255"/>
</div>
<div class="col-xs-12 col-sm-2 col-md-2 mt-8">
<label>Cod. univoco</label>
<input name="cuu_pa" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cuu_pa"] : "" ?>" autocomplete="off" maxlength="7"/>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 mt-8">
<label>Indirizzo</label>
<input name="indirizzo" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["indirizzo"] : "" ?>" maxlength="80" autocomplete="off"/>
</div>
<div class="col-sm-2 mt-8">
<label>CAP</label>
<input name="cap" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["cap"] : "" ?>" maxlength="10" autocomplete="off"/>
</div>
<div class="col-md-3 col-sm-4 mt-8">
<div class="form-group">
<label>Citta</label>
<input name="citta" class="form-control text-uppercase" type="text"
value="<?= isset($cliente) ? $cliente["citta"] : "" ?>" maxlength="30" autocomplete="off"/>
</div>
</div>
<div class="col-md-1 col-sm-2 mt-8">
<label>Prov.</label>
<input name="prov" class="form-control text-uppercase" type="text" maxlength="20"
value="<?= isset($cliente) ? $cliente["prov"] : "" ?>" autocomplete="off"/>
</div>
<div class="col-md-2 col-sm-3 mt-8">
<label>Nazione</label>
<select name="nazione" class="form-control"><?php
foreach ($arr_nazioni as $item) {
$selected = isset($cliente) ? $cliente["nazione"] == $item["nazione"] : $item["nazione"] == "IT";
?>
<option value="<?= $item["nazione"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option><?php
} ?>
</select>
</div>
<div class="clearfix visible-md visible-lg"></div>
<div class="col-md-4 col-sm-3 mt-8">
<label>Telefono</label>
<input name="telefono" class="form-control text-uppercase" type="tel" maxlength="40"
value="<?= isset($cliente) ? $cliente["telefono"] : "" ?>" autocomplete="off"/>
</div>
<div class="col-md-4 col-sm-4 mt-8">
<label>E-Mail</label>
<input name="e_mail" class="form-control text-lowercase" type="email"
value="<?= isset($cliente) ? $cliente["e_mail"] : "" ?>" maxlength="40" autocomplete="off"/>
</div>
<div class="col-sm-2 mt-8">
<label>&nbsp;</label><br/>
<button type="button" class="btn btn-default btn-block">
Informativa privacy <input type="checkbox" class="hidden" name="flag_informativa" data-checked_value="S"
data-unchecked_value="N" <?= isset($cliente) && boolValue($cliente["flag_informativa"]) ? "checked" : "" ?> />
</button>
</div>
<div class="col-sm-2 mt-8">
<label>&nbsp;</label><br/>
<button type="button" class="btn btn-default btn-block">
Trattamento dati <input type="checkbox" class="hidden" name="flag_consenso" data-checked_value="S"
data-unchecked_value="N" <?= isset($cliente) && boolValue($cliente["flag_consenso"]) ? "checked" : "" ?> />
</button>
</div>
</div>
</div>

View File

@@ -1,108 +0,0 @@
<?php
if (!$flag_editOnly) {
?>
<div class="row">
<div class="col-sm-6 my-20">
<label for="listCommesseAperte">Commesse aperte</label>
<select class="form-control" id="listCommesseAperte" autocomplete="off"></select>
</div>
<div class="col-md-5 col-sm-6 my-20">
<label>&nbsp;</label>
<div class="btn-group btn-block pull-right">
<button id="bt_nuovaCommessa" class="col-xs-6 radio_btn btn btn-info" type="button">
<i class="fa fa-plus-circle"></i> Crea nuova
</button>
</div>
</div>
</div><?php
} ?>
<div id="form-commessa">
<div class="row">
<div class="col-sm-6">
<label for="descrizione">Descrizione</label>
<div class="form-group">
<input id="descrizione" name="descrizione" class="form-control text-uppercase" type="text"
value="<?= isset($commessa) ? $commessa["descrizione"] : "" ?>" autocomplete="off" maxlength="40"
data-required/>
</div><?php
if (!$flag_editOnly) {
?>
<input name="processo-activity_id" type="hidden" value=""/><?php
} ?>
<input name="cod_jcom" type="hidden" value="<?= isset($commessa) ? $commessa["cod_jcom"] : "" ?>"/>
</div>
<div class="col-sm-6">
<label for="note">Note</label>
<div class="form-group">
<input id="note" name="note" class="form-control" type="text"
value="<?= isset($commessa) ? $commessa["note"] : "" ?>" autocomplete="off" maxlength="255"/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 mt-10">
<label for="user_name">Agente assegnato</label>
<div class="form-group">
<select id="user_name" name="user_name" class="form-control"><?php
if (!$flag_editOnly) {
echo "<option value=''></option>";
}
foreach (ContattiCommesseIntegry::getListAgentiAssegnatiA() as $agente) {
$selected = isset($commessa) ? $commessa["user_name_processo"] == $agente["user_name"] : (\ContattiCommesseIntegry::isGruppoUtenteLimitato() && User::get_current_username() == $agente["user_name"]) ? "selected" : "";
?>
<option value="<?= $agente["user_name"] ?>"
data-cod_jflav="<?= $agente["cod_jflav"] ?>" <?= $selected ?>><?= $agente["full_name"] ?></option><?php
} ?>
</select>
</div>
</div>
<div class="col-sm-4 mt-10">
<label for="cod_jfas">Interessato a</label>
<div class="form-group">
<select id="cod_jfas" name="cod_jfas" class="form-control" data-required>
<option value=""></option><?php
foreach (ContattiCommesseIntegry::getListCentriDiRicavo() as $item) {
$selected = isset($commessa) && $commessa["cod_jfas"] == $item["cod_jfas"] ? "selected" : ""; ?>
<option
value="<?= $item["cod_jfas"] ?>" <?= $selected ?>><?= $item["descrizione"] ?></option><?php
} ?>
</select>
</div>
</div>
<div class="col-sm-4 mt-10">
<label for="stato_commessa">Stato</label>
<div class="form-group">
<select id="stato_commessa" name="stato_commessa" class="form-control" data-required>
<option value=""></option><?php
foreach (ContattiCommesseIntegry::getStatiCommessa() as $item) {
$selected = isset($commessa) && $commessa["stato_commessa"] === $item["stato_commessa"] ? "selected" : ""; ?>
<option value="<?= $item["stato_commessa"] ?>"
data-is_default_nuova_commessa="<?= $item["is_default_nuova_commessa"] ?>" <?= $selected ?>><?= $item["stato_commessa"] ?></option><?php
} ?>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 mt-10">
<label for="responsabile_tec">
Responsabile Tecnico
</label>
<div class="form-group">
<select id="responsabile_tec" name="cod_jflav_tec" class="form-control"><?php
// if (!$flag_editOnly) {
// echo "<option value=''></option>";
// }
echo "<option value=''></option>";
foreach (ContattiCommesseIntegry::getListAgentiAssegnatiA(22) as $agente) {
$selected = isset($commessa) ? $commessa["cod_jflav_tec"] == $agente["cod_jflav"] : (\ContattiCommesseIntegry::isGruppoUtenteLimitato() && User::get_current_username() == $agente["cod_jflav"]) ? "selected" : "";
?>
<option
value="<?= $agente["cod_jflav"] ?>" <?= $selected ?>><?= $agente["full_name"] ?></option><?php
} ?>
</select>
</div>
</div>
</div>
</div>

View File

@@ -1,117 +0,0 @@
<?php if (!$flag_editOnly) { ?>
<div class="row mt-10">
<div class="col-sm-5">
<label for="codVdes">Seleziona una destinazione</label>
<select class="form-control input-sm" id="codVdes" autocomplete="off"></select>
</div>
<div class="col-sm-6 col-sm-offset-1">
<label>&nbsp;</label>
<div class="btn-group btn-block btn-group-sm pull-right">
<button data-action="dest-nuovo" class="col-xs-4 radio_btn btn btn-info" type="button">
<i class="fa fa-user-plus"></i> Nuova destinazione
</button>
<button data-action="dest-esistente" class="col-xs-4 radio_btn btn btn-default" type="button">
<i class="fa fa-address-card"></i> Destinazione gi&agrave; censita
</button>
<button data-action="dest-no" class="col-xs-4 radio_btn btn btn-default" type="button">
<i class="fa fa-ban"></i> Nessuna destinazione
</button>
</div>
</div>
</div>
<?php } else { ?>
<input id="codVdes" type="hidden" value="<?= $commessa["cod_vdes"] ?>"/>
<?php } ?>
<div id="form-destinazione" class="mt-20">
<h4 class="text-primary">
Destinazione
</h4>
<div class="row">
<div class="col-xs-9 col-md-4 mt-8">
<div class="form-group">
<label>Destinatario della merce</label>
<input name="rag_soc" placeholder="IDEM" class="form-control text-uppercase" type="text"
value="<?= isset($dest) ? htmlentities($dest["rag_soc"]) : "" ?>" autocomplete="off"
maxlength="40" data-required/>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 mt-8">
<label>Zona</label>
<select name="cod_vzon" class="form-control" autocomplete="off">
<option value=""></option>
<?php
foreach ($arr_zone as $item) {
$selected = isset($dest) ? $dest["cod_vzon"] == $item["cod_vzon"] : "";
?>
<option value="<?= $item["cod_vzon"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option>
<?php } ?>
</select>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 mt-8">
<div class="form-group">
<label>Indirizzo</label>
<input name="indirizzo" class="form-control text-uppercase" type="text"
value="<?= isset($dest) ? htmlentities($dest["indirizzo"]) : "" ?>" maxlength="40"
autocomplete="off"/>
</div>
</div>
<div class="col-sm-2 mt-8">
<div class="form-group">
<label>CAP</label>
<input name="cap" class="form-control text-uppercase" type="text"
value="<?= isset($dest) ? htmlentities($dest["cap"]) : "" ?>" maxlength="10" autocomplete="off"/>
</div>
</div>
<div class="col-md-3 col-sm-6 mt-8">
<div class="form-group">
<label>Città</label>
<input name="citta" class="form-control text-uppercase" type="text"
value="<?= isset($dest) ? htmlentities($dest["citta"]) : "" ?>" maxlength="30"
autocomplete="off"/>
</div>
</div>
<div class="col-md-1 col-sm-2 mt-8">
<div class="form-group">
<label>Prov.</label>
<input name="prov" class="form-control text-uppercase" type="text" maxlength="2"
value="<?= isset($dest) ? htmlentities($dest["prov"]) : "" ?>" autocomplete="off"/>
</div>
</div>
<div class="col-md-2 col-sm-3 mt-8">
<div class="form-group">
<label>Nazione</label>
<select name="nazione" class="form-control">
<option></option>
<?php
foreach ($arr_nazioni as $item) {
$selected = isset($dest["nazione"]) ? $item["nazione"] == $dest["nazione"] : $item["nazione"] == "IT";
?>
<option value="<?= $item["nazione"] ?>" <?= $selected ? "selected" : "" ?>>
<?= $item["descrizione"] ?>
</option>
<?php } ?>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4 mt-8">
<div class="form-group">
<label>Telefono</label>
<input name="telefono" class="form-control text-uppercase" type="tel" maxlength="40"
value="<?= isset($dest) ? $dest["telefono"] : "" ?>" autocomplete="off"/>
</div>
</div>
<div class="col-sm-4 mt-8">
<div class="form-group">
<label>E-Mail</label>
<input name="e_mail" class="form-control text-lowercase" type="email"
value="<?= isset($dest) ? $dest["e_mail"] : "" ?>" maxlength="40" autocomplete="off"/>
</div>
</div>
</div>
</div>

View File

@@ -1,39 +0,0 @@
<div id="form-persRif" class="mt-40">
<h4 class="text-primary">
Persone di riferimento
<button id="bt_newPersRif" class="<?= isset($cliente) ? "invisible" : "" ?> btn btn-xs btn-default">
<span class="text-primary"><i class="fa fa-user-plus"></i> Aggiungi</span>
</button>
</h4>
<?
$Ret = new Ret;
$arr_persRif = array();
if (isset($cliente)) {
$Ret = ContattiCommesseIntegry::get_persRifClie($cliente["tipo_anag"], $cliente["cod_anag"]);
if ($Ret->is_OK()) {
$arr_persRif = $Ret->get_data();
}
}
if ($Ret->is_OK()) {
?>
<table class="table table-striped small">
<thead>
<tr>
<th class="text-left col-sm-3">Nominativo</th>
<th class="text-left col-sm-3">Mansione</th>
<th class="text-left col-sm-2">Telefono</th>
<th class="text-left col-sm-2">Num. Cellulare</th>
<th class="text-left col-sm-2">E-Mail</th>
<th style="width:30px"></th>
</tr>
</thead>
<tbody><?
foreach ($arr_persRif as $persRif) {
include Controller::current_gestpath_html("tr-pers_rif.php");
} ?>
</tbody>
</table><?
} else {
$Ret->showErrorAlert();
} ?>
</div>

View File

@@ -1,122 +0,0 @@
<?
$styleCircle = $item["is_closed"] ? ($item["flag_activity_result"] == 1 ? "success" : "danger") : "warning";
$is_insCurrentDay = !is_null($item["ora_ins_act"]) && Utility\Date\Day::diff($item["ora_ins_act"], $item["data_attivita"]) == 0;
$is_assCurrentDay = Utility\Date\Day::diff($item["data_inizio"], $item["data_attivita"]) == 0;
$stato = $item["stato"];
$descStato = is_null($item["activity_result_id"]) ? "IN CORSO" : $item["activity_result_id"];
$styleStato = $stato == 1 ? "success" : ($stato == 0 ? "warning" : "danger");
$item["is_commessaInterna"] = ContattiCommesseIntegry::isCommessaInterna($item["cod_jcom"]);
$is_assignedToCurrentUser = $item["is_assignedToCurrentUser"];
$dataIns = $item["data_ins"];
$oraIns = intval(strftime("%H%M", $dataIns)) > 0 ? strftime(Format::strftimeHM, $dataIns) : null;
$RetAllegati = Allegati\Attivita::get_filelist($item["activity_id"]);
$countAllegati = $RetAllegati->is_OK() ? count($RetAllegati->get_data()) : 0;
$rowAttivita = array_pick($item, "cod_jcom", "activity_id", "estimated_time", "estimated_endtime", "effective_time", "effective_endtime", "user_name", "activity_type_id", "activity_description", "activity_result_id", "parent_activity_id", "note", "is_createdFromUser", "descr_commessa", "cod_anag_clie", "tipo_anag_clie", "rag_soc_clie", "is_commessaInterna");
$rowAttivita["countAllegati"] = $countAllegati;
?>
<tr class="<?= !$is_assignedToCurrentUser ? "opacity-70" : "" ?>"
data-activity_id="<?= $item["activity_id"] ?>" <?= $item["is_editableFromUser"] ? "data-row_attivita='" . Utility::B64JSON_stringify($rowAttivita) . "'" : "" ?>>
<td class="text-left text-muted small"><?
if ($is_assCurrentDay) {
?>
<i class="fa fa-clock"></i> <span
class="font-weight-bold"><?= strftime(Format::strftimeHM, $item["data_inizio"]) ?></span>
<hr/><?
} ?>
<small>Ins.</small><?
if (!is_null($dataIns)) {
?>
<small>il</small>
<span class="<?= $is_insCurrentDay ? "font-weight-bold" : "" ?>"><span
class="visible-xs-inline"><?= strftime(Format::strftimeDMy, $dataIns) ?></span><span
class="hidden-xs"><?= strftime(Format::strftimeDMY, $dataIns) ?></span></span>
<?
if (!is_null($oraIns)) {
?>
<small><?= $oraIns ?></small><?
} ?><br/><?
} ?>
<hr/><?
if (!$is_assCurrentDay) {
?>
<small>Per il</small> <span class="<?= $is_assCurrentDay ? "font-weight-bold" : "" ?>"><span
class="visible-xs-inline"><?= strftime("%d/%m/%y", $item["data_inizio"]) ?></span><span
class="hidden-xs"><?= strftime("%d/%m/%Y", $item["data_inizio"]) ?></span></span>
<small><?= strftime(Format::strftimeHM, $item["data_inizio"]) ?></small><br/><?
} ?>
<small class="visible-xs text-uppercase text-<?= $styleStato ?>"><?= $descStato ?></small>
<hr/>
<small class="text-muted">
<i class="far fa-user"></i> <?= $item["user_creator"] ?>
<i class="fa fa-angle-right"></i>
<i class="fas fa-user"></i> <u><?= $item["user_name"] ?></u>
</small><?
if (is_null($item["ora_view_act"]) && $is_assignedToCurrentUser) {
?>
<hr/>
<label class="label label-success">NUOVA</label><?
} ?>
</td>
<td class="text-uppercase"><?
if ($item["is_commessaInterna"]) {
echo "<b>Attività interna</b><br/>";
echo "<small class='text-muted'>{$item["cod_anag_clie"]}</small> <small>{$item["rag_soc_clie"]}</small><br/>";
} else {
echo "<b>{$item["cod_jcom"]}</b><br/><small>{$item["descr_commessa"]}</small><br/>";
} ?>
<small class="text-muted"><?= $item["descrizione_fase"] ?></small>
</td>
<td class="small">
<span class="text-<?= $styleStato ?>">
<i class="fa fa-<?= $stato == 1 ? "check-circle" : ($stato == 0 ? "pause-circle" : "times-circle") ?>"></i>
<small><?= $item["activity_type_id"] ?></small>
</span>
<hr/>
<span class="text-uppercase"><?= htmlentities($item["activity_description"]) ?></span><br/>
<i class="text-muted"><?= Utility\Str::shortens_words(htmlentities($item["note"]), 50, true) ?></i>
</td>
<td class="text-center hidden-xs small text-uppercase">
<?= $descStato ?>
</td>
<td style="max-width: 160px;width: 160px;"><?
if (!$item["is_commessaInterna"]) {
?>
<div class="btn-group btn-group-xs btn-block" style="width:100%">
<a class="btn btn-default col-xs-9" href="?view=<?= $item["cod_jcom"] ?>">
<i class="fa fa-file-alt text-info"></i> Commessa
</a>
<button type="button" class="btn btn-default col-xs-3 bt_openDetClie"
data-tipo_anag="<?= $item["tipo_anag"] ?>" data-cod_anag="<?= $item["cod_anag"] ?>"
data-cod_vdes="<?= $item["cod_vdes"] ?>">
<i class="fa fa-user-circle text-primary"></i>
</button>
</div><?
} ?>
<div class="btn-group-vertical btn-group-xs btn-block"><?
if ($item["is_deletableFromUser"]) {
?>
<button class="btn btn-default delete_activity">
<i class="fas fa-trash text-danger" style="font-size: 1.2em"></i> Elimina
</button><?
}
if ($item["is_editableFromUser"]) {
?>
<button class="btn btn-default edit_activity">
<i class="fa fa-pencil text-primary"></i> Modifica
</button><?
}
if ($RetAllegati->is_OK()) {
?>
<button type="button" class="btn btn-default bt_viewFiles">
<i class="fas fa-paperclip text-success"></i> Allegati <span
class="badge badge-<?= $countAllegati > 0 ? "primary" : "default" ?> badge-sm"><?= $countAllegati ?></span>
</button><?
} else {
$RetAllegati->showErrorAlert();
} ?>
</div>
</td>
</tr>

View File

@@ -1,100 +0,0 @@
<?php
$switchFilter = array("d", "di", "tipoAttivita", "na", "anag", "com", "desc", "assegnatoA", "uc", "ne");
$filter = ContattiCommesseIntegry\PanelFilter::parseRawData($_GET, $switchFilter);
$filter["pagination"] = true;
$Ret = ContattiCommesseIntegry::get_attivitaUtente($filter);
if ($Ret->is_OK()) {
$retNumber = $Ret->get_number();
$arr_attivitaUtente = $Ret->get_data();
$flt_clieComm = null;
if (isset($filter["codJcom"]) or isset($filter["codAnag"])) {
if (count($arr_attivitaUtente) > 0) {
if (isset($filter["codJcom"])) {
$flt_clieComm = $arr_attivitaUtente[0]["descr_commessa"];
} else if (isset($filter["codAnag"])) {
$flt_clieComm = $arr_attivitaUtente[0]["rag_soc_clie"];
}
} else {
?>
<script>unset_urlParameter("com");</script>
<?php
}
}
include "list-panel-filter.php";
$pagination = $Ret->get("pagination");
if (count($arr_attivitaUtente) > 0) {
$pagination->display();
$arr_dataAttivita = array_values(
from($arr_attivitaUtente)
->select(function ($x) {
return !is_null($x["data_attivita"]) ? Utility\Date::startOfDay($x["data_attivita"]) : null;
})
->distinct(function ($x) {
return $x;
})
->toArray());
?>
<div style="overflow-x: auto;" class="mt-20">
<table id="list-commesse" class="table table-striped">
<thead>
<tr>
<th style="width: 180px;min-width: 180px;">&nbsp;</th>
<th style="width: 200px;min-width: 200px;">Commessa</th>
<th>Descrizione <span class="text-muted">/ Note</span></th>
<th class="hidden-xs">Esito</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<?php
foreach ($arr_dataAttivita as $dataAttivita) {
$dataAttivita_txt = "&nbsp;";
if (!is_null($dataAttivita)) {
$dataAttivita_txt = Utility\Date\Day::get_name($dataAttivita) . " ";
$dataAttivita_txt .= date("d", $dataAttivita) . " ";
$dataAttivita_txt .= Utility\Date\Month::get_name($dataAttivita) . " ";
$dataAttivita_txt .= date("Y", $dataAttivita);
}
?>
<tr class="<?= Utility\Date\Day::isToday($dataAttivita) ? "success" : "" ?>">
<th colspan="7" class="text-left <?= Utility\Date\Day::isToday($dataAttivita) ? "" : "day" ?>">
<span class="text-info"><?= $dataAttivita_txt ?></span>
</th>
</tr>
<?php
$arr_attivitaData = array_values(
from($arr_attivitaUtente)
->where(function ($x) use ($dataAttivita) {
return Utility\Date\Day::diff($x["data_attivita"], $dataAttivita) == 0;
})
->orderBy(function ($x) {
return $x["data_inizio"];
})
->thenBy(function ($x) {
return $x["is_assignedToCurrentUser"] ? 0 : 1;
})
->toArray());
foreach ($arr_attivitaData as $item) {
include "list-attivita-tr.php";
}
}
?>
</tbody>
</table>
</div>
<?php
$pagination->display();
} else {
$Alert = new BC\Alert;
$Alert->size(8)->text("Nessuna attivit&agrave; trovata")->show();
}
} else {
$Ret->showErrorAlert();
}

View File

@@ -1,20 +0,0 @@
<div class="row">
<div class="col-xs-12 col-md-12">
<input type="text" class="form-control input-lg" id="flt-clie" placeholder="Cerca cliente" autocomplete="off"/>
<div class="mt-20 pb-80" style="max-width: 100%;overflow-x: auto;">
<table id="list-clie" class="table table-striped table-condensed table-hover" style="display: none;">
<thead>
<tr>
<th>Ragione sociale</th>
<th>Indirizzo</th>
<th>Telefono</th>
<th>E-mail</th>
<th>Commessa</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>

View File

@@ -1,177 +0,0 @@
<?php
$switchFilter = array("anag", "com", "stato", "tecnico", "drange", "resultAtt", "descrAtt");
if (!\ContattiCommesseIntegry::isGruppoUtenteLimitato()) {
$switchFilter[] = "assegnatoA";
}
$filter = ContattiCommesseIntegry\PanelFilter::parseRawData($_GET, $switchFilter);
$filter["pagination"] = true;
$Ret = ContattiCommesseIntegry::getListCommesse($filter);
if ($Ret->is_OK()) {
$pagination = $Ret->get("pagination");
$arr_commesse = $Ret->get_data();
foreach ($arr_commesse as $i => $item) {
$arr_commesse[$i]["count_allegati"] = 0;
$Ret = Allegati\Commessa::get_filelist($item["cod_jcom"], -1, array("onlyCurrentUser" => true));
if ($Ret->is_OK()) {
$arr_commesse[$i]["count_allegati"] = count($Ret->get_data());
} else {
break;
}
}
if ($Ret->is_OK()) {
$Ret->set_data($arr_commesse);
}
}
$ret = ContattiCommesseIntegry::get_Activity_results();
if ($ret->is_KO()) {
return $ret;
}
$listActivityResults = $ret->get_data();
$ret = ContattiCommesseIntegry::get_activity_decriptions();
if ($ret->is_KO()) {
return $ret;
}
$listActivityDescriptions = $ret->get_data();
if ($Ret->is_OK()) {
$flt_clieComm = null;
if (isset($filter["codJcom"])) {
if (count($arr_commesse) > 0) {
$flt_clieComm = $arr_commesse[0]["descrizione"];
} else {
$flt_clieComm = $filter["codJcom"];
}
} else if (isset($filter["codAnag"]) && isset($filter["tipoAnag"])) {
if (count($arr_commesse) > 0) {
$flt_clieComm = $arr_commesse[0]["rag_soc_clie"];
} else {
$flt_clieComm = $filter["codAnag"];
}
}
include "list-panel-filter.php";
if (count($arr_commesse) > 0) {
?>
<div class="row mt-10 mb-40">
<div class="col-sm-7">
<?php $pagination->display(); ?>
</div>
<div class="hidden-xs col-sm-2 col-sm-offset-3 col-xs-6 col-xs-offset-3">
<button class="btn btn-success btn-block" type="button" id="bt_getExcel">
<i class="fa fa-file-excel"></i> Esporta in Excel
</button>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<table id="list-commesse" class="table table-hover table-condensed table-striped">
<thead>
<tr>
<th class="hidden-xs">Apertura</th>
<th>Commessa</th>
<th>Agente / Interesse</th>
<th class="hidden-xs">Note</th>
<th>Ultima attivit&agrave;<span class="visible-xs">/ Note</span></th>
<th class="hidden-xs">&nbsp;</th>
</tr>
</thead>
<tbody>
<?php
$arr_commesse = array_orderby($arr_commesse, "estimated_time", SORT_DESC);
foreach ($arr_commesse as $item) {
$lastActivity = ContattiCommesseIntegry::get_lastActivityCommessa($item["cod_jcom"]);
?>
<tr data-cod_jcom="<?= $item["cod_jcom"] ?>">
<td class="text-center hidden-xs"><?= \Utility\Date::format($item["estimated_time"], \Format::strftimeDMY) ?></td>
<td>
<span class="text-uppercase"><?= $item["cod_jcom"] ?></span>
<small class="text-muted visible-xs">del <?= \Utility\Date::format($item["estimated_time"], \Format::strftimeDMy) ?></small>
<span class="hidden-xs text-xs text-secondary"><?= !is_null($item["stato_commessa"]) ? " [{$item["stato_commessa"]}]" : "" ?><br/></span>
<small class="text-uppercase"><?= htmlentities($item["descrizione"]) ?></small>
</td>
<td>
<small><i class="fas fa-user text-muted"></i> <?= $item["user_name_processo"] ?>
</small><br/>
<small class="text-muted"><?= $item["descrizione_fase"] ?></small>
</td>
<td class="hidden-xs">
<small class="text-muted font-italic"><?= Utility\Str::shortens_words($item["note"], 50, true) ?></small>
</td>
<td>
<?php
if (!is_null($lastActivity)) {
$stato = $lastActivity["stato"];
?>
<small class="text-<?= $stato == 1 ? "success" : ($stato == 0 ? "warning" : "danger"); ?>">
<i class="fa fa-<?= $stato == 1 ? "check-circle" : ($stato == 0 ? "pause-circle" : "times-circle"); ?>"></i>
<small><?= $lastActivity["activity_type_id"] ?></small>
</small><br/>
<small class="text-uppercase"
title="<?= htmlentities($lastActivity["activity_description"]) ?>">
<?= Utility\Str::shortens_words(htmlentities($lastActivity["activity_description"]), 45) ?>
</small>
<br/>
<small class="text-muted"
title="<?= htmlentities($lastActivity["stato_attivita"]) ?>">
<?= Utility\Str::shortens_words(htmlentities($lastActivity["stato_attivita"]), 45) ?>
</small>
<?php
}
if (!is_null($item["note"])) {
?>
<small class="visible-xs text-muted font-italic">
<hr/><?= Utility\Str::shortens_words($item["note"], 50, true) ?>
</small>
<?php } ?>
</td>
<td>
<div class="btn-group-vertical btn-group-xs"><?php
if (User::is_ispettore() && ContattiCommesseIntegry::isCommessaEliminabile($item["cod_jcom"])) {
?>
<button class="btn btn-default" data-delete_commessa="<?= $item["cod_jcom"] ?>">
<i class="fa fa-times text-danger"></i> <span
class="text-danger">Elimina</span>
</button>
<?php } ?>
<a class="btn btn-default" href="?view=<?= $item["cod_jcom"] ?>">
<i class="fa fa-bars text-info"></i> Dettaglio
</a>
<button type="button" class="btn btn-default bt_openDetClie"
data-tipo_anag="<?= $item["tipo_anag"] ?>"
data-cod_anag="<?= $item["cod_anag"] ?>"
data-cod_vdes="<?= $item["cod_vdes"] ?>">
<i class="fa fa-user-circle text-primary"></i> Cliente
</button>
<button type="button" class="btn btn-default"
data-files_commessa="<?= $item["cod_jcom"] ?>">
<i class="fas fa-paperclip text-success"></i> Allegati <span
class="badge badge-<?= $item["count_allegati"] > 0 ? "primary" : "default" ?> badge-sm"><?= $item["count_allegati"] ?></span>
</button>
</div>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
<div class="row">
<div class="col-sm-7 mt-20"><?php
$pagination->display(); ?>
</div>
</div><?php
} else {
$Alert = new BC\Alert;
$Alert->text("Nessuna commessa trovata")->size(8)->offset()->show();
}
} else {
$Ret->showErrorAlert();
}

View File

@@ -1,181 +0,0 @@
<div class="row">
<div class="col-xs-12">
<div id="panel-filter"
class="panel panel-sm panel-<?= count($filter) == 0 ? "default" : "info" ?> panel-collapsible <?= count($filter) == 0 ? "collapsed" : "" ?>">
<div class="panel-heading">
<strong>Filtra risultati <?php if (isset($pagination) && $pagination->getResultsCount() > 0) { ?>
<span class="label pull-right">(<?= $pagination->getResultsCount() ?> risultati filtrati)</span>
<?php } ?></strong>
</div>
<div class="panel-body">
<div class="row">
<?php if (in_array("anag", $switchFilter)) { ?>
<div class="col-md-4 col-sm-6 mt-10">
<label>Cliente / Commessa</label><br/>
<input id="flt-clieComm" value="<?= isset($flt_clieComm) ? $flt_clieComm : "" ?>"
type="text" class="form-control input-sm" autocomplete="off"/>
</div>
<?php }
if (in_array("stato", $switchFilter)) { ?>
<div class="col-md-3 col-sm-6 mt-10">
<label>Stato</label><br/>
<select id="flt-stato" class="form-control input-sm" autocomplete="off"></select>
</div>
<?php }
if (in_array("tecnico", $switchFilter)) { ?>
<div class="col-md-5 col-sm-6 mt-10">
<label>Responsabile Tecnico</label><br/>
<select id="flt-tecnico" class="form-control input-sm" data-live-search="true"
multiple></select>
</div>
<?php } ?>
</div>
<hr>
<div class="row">
<?php
if (in_array("di", $switchFilter)) { ?>
<div class="col-md-2 col-sm-3 mt-10">
<label>Data inserimento</label><br/>
<div class="input-group input-group-sm">
<input id="flt-dataIns" value="" type="text" class="form-control" autocomplete="off"
readonly/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<?php }
if (in_array("d", $switchFilter)) { ?>
<div class="col-md-2 col-sm-3 mt-10">
<label>Data attivit&agrave;</label><br/>
<div class="input-group input-group-sm">
<input id="flt-dataAttivita" value="" type="text" class="form-control"
autocomplete="off" readonly/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<?php }
if (in_array("uc", $switchFilter)) { ?>
<div class="col-md-3 col-sm-6 mt-10">
<label>Inserita da</label><br/>
<select id="flt-uc" class="form-control input-sm" autocomplete="off"></select>
</div>
<?php }
if (in_array("na", $switchFilter)) {
$countNa = isset($retNumber) ? $retNumber["na"] : null; ?>
<div class="col-md-2 col-sm-2 mt-10">
<label>&nbsp;</label>
<button type="button" class="btn btn-default btn-sm btn-block">
<input type="checkbox" class="hidden" id="flag_newActivities"
<?= isset($filter["na"]) && $filter["na"] ? "checked" : "" ?>autocomplete="off"/>
Solo nuove
<span class="badge badge-<?= zeroIfNull($countNa) > 0 ? "success" : "default" ?> <?= is_null($countNa) ? "hidden" : "" ?>"><?= $countNa ?></span>
</button>
</div>
<?php }
if (in_array("ne", $switchFilter)) {
$countNe = isset($retNumber) ? $retNumber["ne"] : null; ?>
<div class="col-md-2 col-sm-2 mt-10">
<label>&nbsp;</label>
<button type="button" class="btn btn-default btn-sm btn-block">
<input type="checkbox" class="hidden" id="flag_attivitaNonEvase"
<?= isset($filter["ne"]) && $filter["ne"] ? "checked" : "" ?>autocomplete="off"/>
Solo inevase
<span class="badge badge-<?= zeroIfNull($countNe) > 0 ? "warning" : "default" ?> <?= is_null($countNe) ? "hidden" : "" ?>"><?= $countNe ?></span>
</button>
</div>
<?php }
if (in_array("tipoAttivita", $switchFilter)) { ?>
<div class="col-md-6 col-sm-7 mt-10">
<label>Tipo</label><br/>
<select id="flt-tipoAttivita" class="form-control input-sm" multiple></select>
</div>
<?php }
if (in_array("drange", $switchFilter)) { ?>
<div class="col-md-4 col-sm-6 mt-10">
<label>Intervallo di date (Da / A)</label><br/>
<div class="row">
<div class="col-sm-6 mt-0">
<div class="input-group input-group-sm">
<input id="flt-dataDa" value="" type="text" class="form-control"
autocomplete="off" readonly/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<div class="col-sm-6 mt-0">
<div class="input-group input-group-sm">
<input id="flt-dataA" value="" type="text" class="form-control"
autocomplete="off" readonly style="width:100%"/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
</div>
</div>
<?php }
if (in_array("descrAtt", $switchFilter) && is_array($listActivityDescriptions)) {
?>
<div class="col-md-6 col-sm-6 mt-10">
<label> Ultima Attività</label><br/>
<input type="text" id="flt-activityDescription" class="form-control input-sm"
autocomplete="off" list="listLastActs">
<datalist id="listLastActs">
<?php foreach ($listActivityDescriptions as $activityDescription) { ?>
<option value="<?= $activityDescription ?>"><?= $activityDescription ?></option>
<?php } ?>
</datalist>
</div>
<?php
}
if (in_array("resultAtt", $switchFilter) && is_array($listActivityResults)) { ?>
<div class="col-md-2 col-sm-6 mt-10">
<label>Esito Ultima Attività</label><br/>
<select id="flt-activityResult" class="form-control input-sm" autocomplete="off">
<option value=""></option>
<?php foreach ($listActivityResults as $activityResult) { ?>
<option value="<?= $activityResult ?>"><?= $activityResult ?></option>
<?php
} ?>
</select>
</div>
<?php
}
if (in_array("assegnatoA", $switchFilter)) { ?>
<div class="col-md-6 col-sm-6 mt-10">
<label>Assegnata a</label><br/>
<select id="flt-assegnatoA" class="form-control input-sm" data-live-search="true"
multiple></select>
</div>
<?php } ?>
</div>
<?php if (in_array("desc", $switchFilter)) { ?>
<div class="row">
<div class="col-md-12 col-sm-12 mt-10">
<label>Descrizione o note</label><br/>
<input id="flt-desc" value="" type="text" class="form-control input-sm" autocomplete="off"/>
</div>
</div>
<?php } ?>
<div class="col-xs-12 mt-20 ">
<div class="row btn-group btn-block btn-group-md">
<button class="btn btn-default col-xs-5 col-md-offset-5 col-md-3 col-sm-5" type="button"
id="bt_fltCancel">
<i class="fa fa-times-circle"></i> Reset
</button>
<button class="btn btn-primary col-xs-7 col-md-4 col-sm-7" type="button" id="bt_fltApply">
<i class="fa fa-play-circle"></i> Applica filtro
</button>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,76 +0,0 @@
<?php
$view = isset($_GET["attivita"]) ? "attivita" : (isset($_GET["clienti"]) ? "clienti" : (isset($_GET["monthPlanner"]) ? "monthPlanner" : (isset($_GET["weekPlanner"]) ? "weekPlanner" : (isset($_GET["planner"]) ? "planner" : "commesse"))));
if ($view == "attivita") {
Utility::includeResourceModule("list/attivita.js");
} else if ($view == "clienti") {
Utility::includeResourceModule("list/clienti.js");
} else if ($view == "monthPlanner") {
Utility::includeResourceModule("list/monthPlanner.js");
Utility::includeResourceModule("list/plannerUtils.js");
} else if ($view == "weekPlanner") {
Utility::includeResourceModule("list/weeklyPlanner.js");
Utility::includeResourceModule("list/plannerUtils.js");
} else if ($view == "planner") {
Utility::includeResourceModule("list/planner.js");
Utility::includeResourceModule("list/plannerUtils.js");
} else { // commesse
Utility::includeResourceModule("list/commesse.js");
}
Utility::includeResourceModule("common/activity.js");
?>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12">
<div class="row">
<div class="col-xs-12 col-sm-offset-9 col-sm-3">
<?php
$codJcomInterna = ContattiCommesseIntegry::getCodJcomInterno();
if (!is_null($codJcomInterna)) {
?>
<div class="btn-group btn-block">
<button type="button" class="btn btn-block btn-default dropdown-toggle"
data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<span class="text-primary">Nuova attivit&agrave; <span class="caret"></span></span>
</button>
<ul class="dropdown-menu">
<?php if ($view != "clienti") { ?>
<li><a href="#" id="bt_newIntActivity">Interna</a></li>
<?php } ?>
<li><a href="?new">Di commessa</a></li>
</ul>
</div>
<?php } else { ?>
<a href="?new" class="btn btn-outline-primary btn-block">
Nuovo <i class="fa fa-plus-circle"></i>
</a>
<?php } ?>
</div>
</div>
</div>
</div>
<div class="row mt-10">
<div class="col-xs-12">
<?php
if ($view === "attivita") {
include "list-attivita.php";
} else if ($view === "clienti") {
include "list-clienti.php";
} else if ($view === "monthPlanner") {
include "monthlyPlanner.php";
} else if ($view === "weekPlanner") {
include "weeklyPlanner.php";
} else if ($view === "planner") {
include "planner.php";
} else {
include "list-commesse.php";
}
?>
</div>
</div>
</div>

View File

@@ -1,11 +0,0 @@
<?php
Utility::includeResourceModule("common/common.js");
Utility::includeResourceModule("common/panelFilter.js");
if (isset($_GET["new"])) {
include "new.php";
} else if (isset($_GET["view"])) {
include "view.php";
} else {
include "list.php";
}

View File

@@ -1,16 +0,0 @@
<?php
$switchFilter = array("anag", "com", "tipoAttivita", "assegnatoA");
$filter = ContattiCommesseIntegry\PanelFilter::parseRawData($_GET, $switchFilter);
include "list-panel-filter.php";
?>
<div class="row">
<div class="col-md-3 col-md-offset-4 col-sm-6 col-sm-offset-3">
<div id="monthchooser"></div>
</div>
</div>
<div id="planner"></div>
<?php
$text = "<i class='fa fa-star'></i> <b>Suggerimento</b><br/>Puoi creare rapidamente una nuova attivit&agrave; interna tenendo premuta la casella del giorno desiderato";
$UserTip = new User\Tip;
$UserTip->tip($text)->section("CONTATTI_COMMESSE")->keySection("HIDE_TIP_PLANNER-1")->show();

View File

@@ -1,192 +0,0 @@
<div id="form-attivita">
<div class="row">
<div class="col-md-4 col-sm-6 mt-10">
<label>Tipo</label>
<select name="attivita-activity_type_id" class="form-control" autocomplete="off"><?php
$arr_tipiAttivita = ContattiCommesseIntegry::getListTipiAttivita();
foreach ($arr_tipiAttivita as $item) {
?>
<option value="<?= $item["activity_type_id"] ?>"
data-estimated_duration="<?= $item["estimated_duration"] ?>" <?= \ContattiCommesseIntegry::isTipoAttivitaDefault($item["activity_type_id"]) ? "selected" : "" ?>><?= $item["activity_type_id"] ?></option><?php
} ?>
</select>
</div>
</div>
<div class="row">
<div class="col-md-4 col-sm-6 mt-10">
<label>Assegnata a</label>
<div class="form-group">
<div class="input-group">
<select name="attivita-user_name" class="form-control" autocomplete="off" data-required>
<option value=""></option><?php
$arr_utenti = array_orderby(ContattiCommesseIntegry::getListUtentiAssegnatiA(), "full_name", SORT_ASC);
foreach ($arr_utenti as $item) {
?>
<option value="<?= $item["user_name"] ?>"
data-cod_jflav="<?= $item["cod_jflav"] ?>"><?= $item["full_name"] ?></option><?php
} ?>
</select>
<span id="bt_viewWeekActivities" class="input-group-addon cursor-pointer">
<i class="fa fa-calendar-check text-success"></i>
</span>
</div>
</div>
</div>
<div class="col-sm-3 col-md-2 mt-10">
<label>Prevista per il</label>
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control" value="" name="attivita-data_inizioStimata"
autocomplete="off" style="z-index: 3" data-required/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
</div>
<div class="col-sm-5 col-md-2 mt-10">
<div class="row">
<div class="col-xs-5 p-0">
<label>Dalle</label>
<div class="form-group">
<input type="text" name="attivita-ora_inizioStimata" class="form-control no-border-radius-right"
autocomplete="off" data-required/>
</div>
</div>
<div class="col-xs-5 p-0">
<label>&nbsp;</label>
<div class="form-group">
<input type="text" name="attivita-min_inizioStimata" class="form-control no-border-radius-left"
autocomplete="off" data-required/>
</div>
</div>
</div>
</div>
<div class="col-sm-5 col-md-2 mt-10">
<div class="row">
<div class="col-xs-5 p-0">
<label>Alle</label>
<div class="form-group">
<input type="text" name="attivita-ora_fineStimata" class="form-control no-border-radius-right"
autocomplete="off" data-required/>
</div>
</div>
<div class="col-xs-5 p-0">
<label>&nbsp;</label>
<div class="form-group">
<input type="text" name="attivita-min_fineStimata" class="form-control no-border-radius-left"
autocomplete="off" data-required/>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-6 mt-10">
<label>Descrizione</label>
<div class="form-group">
<input type="text" class="form-control" value="" name="attivita-activity_description" autocomplete="off"
maxlength="1024" data-required/>
</div>
</div>
<div class="col-sm-12 col-md-6 mt-10">
<label>Note</label>
<div class="form-group">
<input type="text" class="form-control" value="" name="attivita-note" autocomplete="off"
maxlength="1024"/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-3 mt-10">
<label>Esito</label>
<div class="form-group">
<select name="attivita-activity_result_id" class="form-control" autocomplete="off">
<option></option><?php
$arr_esiti = ContattiCommesseIntegry::get_esitiAttivita();
foreach ($arr_esiti as $item) {
?>
<option value="<?= $item["activity_result_id"] ?>"
data-flag_activity_result="<?= $item["flag_activity_result"] ?>"><?= $item["activity_result_id"] ?></option><?php
} ?>
</select>
</div>
</div>
<div class="col-sm-3 col-md-2 form-group mt-10">
<label>Processata il</label>
<div class="input-group">
<input type="text" class="form-control" value="" name="attivita-data_inizioEffettiva" autocomplete="off"
data-required/>
<span class="input-group-addon dpicker">
<i class="fa fa-calendar"></i>
</span>
</div>
</div>
<div class="col-sm-5 col-md-2 mt-10">
<div class="row">
<div class="col-xs-5 form-group p-0">
<label>Dalle</label>
<input type="text" name="attivita-ora_inizioEffettiva" class="form-control no-border-radius-right"
autocomplete="off" data-required/>
</div>
<div class="col-xs-5 form-group p-0">
<label>&nbsp;</label>
<input type="text" name="attivita-min_inizioEffettiva" class="form-control no-border-radius-left"
autocomplete="off" data-required/>
</div>
</div>
</div>
<div class="col-sm-5 col-md-2 mt-10 ml-10">
<div class="row">
<div class="col-xs-5 form-group p-0">
<label>Alle</label>
<input type="text" name="attivita-ora_fineEffettiva" class="form-control no-border-radius-right"
autocomplete="off" data-required/>
</div>
<div class="col-xs-5 form-group p-0">
<label>&nbsp;</label>
<input type="text" name="attivita-min_fineEffettiva" class="form-control no-border-radius-left"
autocomplete="off" data-required/>
</div>
</div>
</div>
</div>
</div>
<hr/>
<div class="row mt-20">
<div class="col-xs-12 col-sm-7">
<h4 class="text-info">Riepilogo attivit&agrave; precedenti</h4>
</div>
<div class="col-xs-12 col-sm-7 mt-8 max-height-300px">
<table id="list-attivita_precedenti" class="table table-condensed table-striped">
<thead>
<tr>
<th>Data</th>
<th>Attivit&agrave;</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<hr/>
<div class="row mt-20">
<div class="col-xs-12">
<div class="btn-group btn-group-lg pull-right">
<button data-bt_back_to="commessa" class="btn btn-outline-default">
<i class="fa fa-arrow-circle-up"></i> Indietro
</button>
<button id="bt_confAttivita" class="btn btn-lg btn-primary">
Salva <i class="fa fa-check-circle"></i>
</button>
<?php
if (Azienda::hasModulo("catalogo") && \ContattiCommesseIntegry::isGruppoUtenteLimitato()) {
?>
<button id="bt_confAttivitaStartOrder" class="btn btn-lg btn-success" disabled>
Salva <small>e crea preventivo</small> <i class="fa fa-hand-right"></i><br/>
</button>
<?php } ?>
</div>
</div>
</div>

View File

@@ -1,93 +0,0 @@
<?php
$Ret = StdUtils::getResources(array("zone", "nazioni", "tipiCliente"));
if ($Ret->is_OK()) {
$resources = $Ret->get_data();
$arr_zone = $resources["zone"];
$arr_nazioni = $resources["nazioni"];
$arr_tipiCliente = $resources["tipiCliente"];
Utility::includeResourceModule("new/main.js");
Utility::includeResourceModule("common/activity.js");
Utility::includeResourceModule("common/form-dest.js");
?>
<div class="col-xs-12">
<div class="row">
<div class="col-sm-6 col-xs-12">
<h2 class="text-info">Registra nuovo cliente</h2>
</div>
<div class="col-sm-6 col-xs-12">
<a href="<?= isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $_SERVER["PHP_SELF"] ?>"
onclick="/*window.history.go(-1);return false;*/" class="btn btn-default pull-right">
<i class="fa fa-angle-left"></i> Indietro
</a>
</div>
</div>
<div class="row">
<div class="col-xs-12 mt-20">
<div id="panel-cliente" class="panel panel-sm panel-default">
<div class="panel-heading">
<h4 class="text-primary">&#10112; Acquisizione cliente</h4>
</div>
<div class="panel-body">
<?php
$flag_editOnly = false;
include "form-cliente.php";
echo "<hr/>";
include "form-personeRif.php";
echo "<hr/>";
include "form-destinazione.php";
?>
<div class="row mt-60">
<div class="col-xs-12">
<button id="bt_confCliente" class="btn btn-lg btn-outline-primary pull-right">
Prosegui <i class="fa fa-arrow-circle-down"></i>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 mt-20">
<div class="panel panel-sm panel-default" id="panel-commessa">
<div class="panel-heading">
<h4 class="text-primary">&#10113; Commessa</h4>
</div>
<div class="panel-body" style="display: none;">
<?php include "form-commessa.php"; ?>
<div class="row mt-20">
<div class="col-xs-12">
<div class="btn-group btn-group-lg pull-right">
<button data-bt_back_to="cliente" class="btn btn-outline-default">
<i class="fa fa-arrow-circle-up"></i> Indietro
</button>
<button id="bt_confCommessa" class="btn btn-outline-primary ">
Prosegui <i class="fa fa-arrow-circle-down"></i>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 mt-20">
<div class="panel panel-sm panel-default" id="panel-attivita">
<div class="panel-heading">
<h4 class="text-primary">&#10114; Assegna attivit&agrave;</h4>
</div>
<div class="panel-body" style="display: none;">
<?php include "new-attivita.php"; ?>
</div>
</div>
</div>
</div>
</div>
<?php
} else {
$Ret->showErrorAlert();
}

View File

@@ -1,9 +0,0 @@
<?php
$switchFilter = array("anag", "com", "tipoAttivita", "assegnatoA");
$filter = ContattiCommesseIntegry\PanelFilter::parseRawData($_GET, $switchFilter);
include "list-panel-filter.php";
?>
<div id="calendar"></div>
<?php
$UserTip = new User\Tip;
$UserTip->section("CONTATTI_COMMESSE")->keySection("HIDE_TIP_PLANNER-1")->show();

View File

@@ -1,148 +0,0 @@
<?php
$Ret = ContattiCommesseIntegry::getInfoCliente($data["tipoAnag"], $data["codAnag"]);
if ($Ret->is_OK()) {
$clie = $Ret->get_data();
if (isset($data["codVdes"])) {
$Ret = ContattiCommesseIntegry::getDestinazioniCliente($data["tipoAnag"], $data["codAnag"], $data["codVdes"]);
if ($Ret->is_OK()) {
$dest = $Ret->get_data();
}
}
if ($Ret->is_OK()) {
$Ret = ContattiCommesseIntegry::get_persRifClie($data["tipoAnag"], $data["codAnag"]);
if ($Ret->is_OK()) {
$arr_persRif = $Ret->get_data();
}
}
if ($Ret->is_OK()) {
$return = array("codAnag" => $clie["cod_anag"], "ragSoc" => $clie["rag_soc"]);
ob_start();
?>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 mt-10">
<label>Nominativo / Ragione sociale</label><br/><?= $clie["rag_soc"] ?> <span
class="text-muted"><?= $clie["rag_soc2"] ?></span>
</div>
<div class="col-xs-12 col-sm-12 col-md-3 mt-10">
<label>Tipologia</label><br/><?= $clie["descr_tipo"] ?>
</div>
<div class="col-xs-12 col-sm-12 col-md-3 mt-10">
<label>Zona</label><br/><?= $clie["descr_zona"] ?>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 mt-10">
<label>Indirizzo</label><br/><span
smartlink="map"><?= Utility\Str::format_indirizzoCompleto($clie) ?></span>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-3 mt-10">
<div class="form-group">
<label>P. IVA</label><br/><?= $clie["part_iva"] ?>
</div>
</div>
<div class="col-xs-12 col-sm-6 col-md-3 mt-10">
<label>Cod. Fiscale</label><br/><?= $clie["cod_fisc"] ?>
</div>
<div class="clearfix visible-sm"></div>
<div class="col-xs-12 col-sm-4 col-md-2 mt-10">
<div class="form-group">
<label>Telefono</label><br/><span smartlink="tel"><?= $clie["telefono"] ?></span>
</div>
</div>
<div class="col-xs-12 col-sm-8 col-md-4 mt-10">
<div class="form-group">
<label>E-Mail</label><br/><small smartlink="email"
smartlink-name="<?= $clie["rag_soc"] ?>"><?= $clie["e_mail"] ?></small>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-4 mt-10">
<div class="form-group">
<label>Modalit&agrave; di pagamento</label><br/><?= if_null($clie["descr_paga"], "Non definito") ?>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-3 mt-10">
<div class="form-group">
<label>&nbsp;</label><br/>Informativa
privacy <?= BC\Icon::show(array("classes" => boolValue($clie["flag_informativa"]) ? "text-success far fa-check-square" : "text-danger far fa-times-circle")) ?>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-3 mt-10">
<div class="form-group">
<label>&nbsp;</label><br/>Trattamento
dati <?= BC\Icon::show(array("classes" => boolValue($clie["flag_consenso"]) ? "text-success far fa-check-square" : "text-danger far fa-times-circle")) ?>
</div>
</div>
</div><?
if (isset($dest)) {
?>
<hr/>
<h4 class="text-primary mt-20">Destinazione</h4>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 mt-10">
<label>Ragione sociale</label><br/><?= $dest["rag_soc"] ?>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 mt-10">
<label>Indirizzo</label><br/><span
smartlink="directions"><?= Utility\Str::format_indirizzoCompleto($dest) ?></span>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-4 mt-10">
<div class="form-group">
<label>Telefono</label><br/><span smartlink="tel"><?= $dest["telefono"] ?></span>
</div>
</div>
<div class="col-xs-12 col-sm-8 col-md-4 mt-10">
<div class="form-group">
<label>E-Mail</label><br/><small smartlink="email"
smartlink-name="<?= $dest["rag_soc"] ?>"><?= $dest["e_mail"] ?></small>
</div>
</div>
</div><?
}
if (count($arr_persRif) > 0) {
?>
<hr/>
<h4 class="text-primary mt-20">Persone di riferimento</h4>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Nominativo</th>
<th>Mansione</th>
<th>Telefono</th>
<th>Num. Cellulare</th>
<th>E-Mail</th>
<th></th>
</tr>
</thead>
<tbody><?
foreach ($arr_persRif as $item) {
?>
<tr>
<td class="text-left"><?= $item["persona_rif"] ?></td>
<td class="text-center"><?= $item["mansione"] ?></td>
<td class="text-center" smartlink="tel"><?= $item["telefono"] ?></td>
<td class="text-center" smartlink="tel"><?= $item["num_cellulare"] ?></td>
<td class="text-center"><small smartlink="email"
smartlink-name="<?= $item["persona_rif"] ?>"><?= $item["e_mail"] ?></small>
</td>
</tr><?
} ?>
</tbody>
</table>
</div><?
}
$html = Utility\Str::remove_multiple_spaces(@ob_get_clean());
$Ret->set_string($html)->set_data($return);
}
}
$Ret->display();

View File

@@ -1,58 +0,0 @@
<?php
$day = $data["day"];
$Ret = ContattiCommesseIntegry\Planner::getListRapportiniUtenteGiorno($day);
if ($Ret->is_OK()) {
$arr_reports = $Ret->get_data();
if (count($arr_reports) > 0) {
ob_start();
?>
<table class="table table-striped table-hover table-condensed table-responsive">
<thead>
<tr>
<th>Commessa</th>
<th>Descrizione</th>
<th>Inizio</th>
<th>Fine</th>
<th>Ore</th>
</tr>
</thead>
<tbody><?
$totaleOre = from($arr_reports)->sum(function ($x) {
return $x["ore"];
});
foreach ($arr_reports as $report) {
?>
<tr>
<td><?
if (isset($report["cod_jcom"])) {
if (ContattiCommesseIntegry::isCommessaInterna($report["cod_jcom"])) {
echo "<small>COMMESSA INTERNA</small>";
} else {
echo $report["cod_jcom"] . " <small class='text-muted'>" . $report["desc_commessa"] . "</small>";
}
} ?>
</td>
<td class="text-left"><?= isset($report["desc_attivita"]) ? $report["desc_attivita"] : "" ?></td>
<td class="text-center"><?= isset($report["da_ora"]) ? strftime("%H:%M", $report["da_ora"]) : "" ?></td>
<td class="text-center"><?= isset($report["a_ora"]) ? strftime("%H:%M", $report["a_ora"]) : "" ?></td>
<td class="text-right text-monospace">
<strong><?= isset($report["ore"]) ? number_format((float)$report["ore"], 2, ".", "") : "" ?></strong>
</td>
</tr><?
} ?>
</tbody>
<tfoot>
<tr>
<th class="text-right" colspan="4">Totale Ore</th>
<th class="text-right text-monospace"><?= number_format((float)$totaleOre, 2, ".", "") ?></th>
</tr>
</tfoot>
</table><?
$html = Utility\Str::remove_multiple_spaces(@ob_get_clean());
$Ret->set_string($html)->set_data();
} else {
$Ret->set_warning("Al giorno <b>" . strftime(Format::strftimeDMY, $day) . "</b> non è stato registrato alcun rapportino", "Rapportini <b>" . \User::get_current_fullname() . "</b>");
}
}
$Ret->display();

View File

@@ -1,97 +0,0 @@
<?
$item["is_commessaInterna"] = ContattiCommesseIntegry::isCommessaInterna($item["cod_jcom"]);
$rowAttivita = array_pick($item, "cod_jcom", "activity_id", "estimated_time", "estimated_endtime", "effective_time", "effective_endtime", "user_name", "activity_type_id", "parent_activity_id", "activity_description", "activity_result_id", "note", "is_createdFromUser", "descr_commessa", "cod_anag_clie", "tipo_anag_clie", "rag_soc_clie", "is_commessaInterna");
$RetAllegati = Allegati\Attivita::get_filelist($item["activity_id"]);
$arr_files = $RetAllegati->is_OK() ? $RetAllegati->get_data() : array();
$rowAttivita["countAllegati"] = count($arr_files);
?>
<tr data-activity_id="<?= $item["activity_id"] ?>" <?= $item["is_editableFromUser"] ? "data-row_attivita='" . Utility::B64JSON_stringify($rowAttivita) . "'" : "" ?>>
<td class="text-center"><?
if (!is_null($item["data_inizio"])) {
?>
<span class="hidden-xs"><?= strftime(Format::strftimeDMY, $item["data_inizio"]) ?></span>
<span class="visible-xs-inline"><?= strftime(Format::strftimeDMy, $item["data_inizio"]) ?></span>
<?
if (intval(strftime("%H%M", $item["data_inizio"])) > 0) {
?>
<br/><small class="text-muted"><?= strftime(Format::strftimeHM, $item["data_inizio"]) ?></small><?
}
} ?>
<small class="visible-xs"><small><i class="fas fa-user text-muted"></i> <?= $item["user_name"] ?>
</small></small>
</td>
<td class="text-center"><?
echo $item["activity_type_id"];
if (is_null($item["ora_view_act"]) && $item["is_assignedToCurrentUser"]) {
?>
<br/><label class="label label-<?= $item["is_assignedToCurrentUser"] ? "success" : "default" ?>"><small>NUOVA</small>
</label><?
ContattiCommesseIntegry::reportActivityAsViewed($item["activity_id"]);
} ?>
<small class="visible-xs text-muted"><?= htmlentities($item["activity_description"]) ?></small>
</td>
<td class="text-left hidden-xs"><?= htmlentities($item["activity_description"]) ?></td>
<td class="text-center hidden-xs">
<i class="fas fa-user text-muted"></i> <?= $item["user_name"] ?>
</td>
<td class="text-center" style="max-width: 200px;">
<small class="text-muted"><i><?= htmlentities($item["note"]) ?></i></small>
</td>
<td class="text-center"><?= $item["activity_result_id"] ?></td>
<td class="text-center vertical-middle" style="max-width: 150px;">
<div class="btn-group-vertical btn-group-sm btn-block"><?
if ($item["is_deletableFromUser"]) {
?>
<button class="btn btn-default delete_activity">
<i class="fas fa-trash text-danger" style="font-size: 1.2em"></i> Elimina
</button><?
}
if ($item["is_editableFromUser"]) {
?>
<button class="btn btn-default edit_activity">
<span class="text-primary"><i class="fa fa-pencil text-primary"></i> Modifica</span>
</button><?
}
if (User::is_agente()) {
$Query = new Query;
$Query->select("gestione", "data_ord", "num_ord", "serie", "flag_elaborato")
->from("wdtb_ordt")
->where("activity_id", $item["activity_id"]);
$Ret = $Query->toRet()->firstRow()->execute();
if ($Ret->is_OK()) {
$retData = $Ret->get_data();
if (!is_null($retData)) {
$orderKey = array_pick($retData, "gestione", "data_ord", "num_ord", "serie");
if ($retData["flag_elaborato"] != "S") {
?>
<a class="btn btn-default"
href="catalogo.php?ordsummary=<?= Utility::B64JSON_stringify($orderKey) ?>">
<span class="text-success"><i
class="fa fa-bars text-success"></i> Val al preventivo</span>
</a><?
} else { ?>
<button type="button" class="btn btn-default pdf_order"
data-key="<?= Utility::B64JSON_stringify($orderKey) ?>">
<i class="fa fa-file-pdf text-danger"></i> PDF preventivo
</button><?
}
}
} else {
$Ret->showErrorAlert();
}
}
if ($RetAllegati->is_OK()) {
?>
<button type="button" class="btn btn-default bt_viewFiles">
<i class="fas fa-paperclip text-success"></i> Allegati <span
class="badge badge-<?= count($arr_files) > 0 ? "primary" : "default" ?> badge-sm"><?= count($arr_files) ?></span>
</button><?
} else {
$RetAllegati->showErrorAlert();
} ?>
</div>
</td>
</tr>

View File

@@ -1,59 +0,0 @@
<?php
$arr_attivitaProcesso = null;
if ($Ret->is_OK()) {
$arr_attivitaProcesso = $Ret->get_data();
}
?>
<div class="row">
<div class="col-xs-12">
<div data-processo="<?= $processo["activity_id"] ?>"
class="panel panel-default panel-collapsible <?= !(isset($arr_attivitaProcesso) && count($arr_attivitaProcesso) > 0) ? "collapsed" : "" ?>">
<div class="panel-heading">
<div class="row">
<div class="col-xs-12">
<h4 class="text-info">
<?= ucwords(strtolower($processo["activity_description"])) ?>
<button class="bt_newActivity btn btn-xs btn-primary pull-right">
<i class="fa fa-calendar-plus"></i> Nuova attivit&agrave;
</button>
</h4>
</div>
</div>
</div>
<div class="panel-body">
<?php if ($Ret->is_OK()) { ?>
<table class="list-attivita table table-condensed table-striped mt-20"
style="<?= count($arr_attivitaProcesso) == 0 ? "display:none;" : "" ?>">
<thead>
<tr>
<th style=""><span class="hidden-xs">Data</span></th>
<th style="min-width: 120px;">
Tipo <span class="visible-xs">/ Descrizione</span>
</th>
<th class="hidden-xs">Descrizione</th>
<th class="hidden-xs">Assegnata a</th>
<th>Note</th>
<th>Esito</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody><?= ContattiCommesseIntegry::get_tbodyAttivita($arr_attivitaProcesso); ?></tbody>
</table>
<?php
$Alert = new BC\Alert;
if (count($arr_attivitaProcesso) > 0) {
$Alert->css("display", "none");
}
$Alert->text("Nessuna attivit&agrave; registrata")
->_class("alert_noActivities mt-10")
->size(12)
->offset()
->show();
} else {
$Ret->showErrorAlert();
}
?>
</div>
</div>
</div>
</div>

View File

@@ -1,92 +0,0 @@
<?php
$Ret = Allegati\Commessa::getListFileAttivitaPrincipale($codJcom);
if ($Ret->is_OK()) {
$arr_files = $Ret->get_data();
$Ret = Allegati\Commessa::getListPdfDoc($codJcom);
if ($Ret->is_OK()) {
$arr_files = array_merge($arr_files, $Ret->get_data());
$Ret = Allegati\Commessa::getListFileOrdiniAcq($codJcom);
if ($Ret->is_OK()) {
$arr_files = array_merge($arr_files, $Ret->get_data());
$Ret = Allegati\Commessa::getListFileOrdiniLav($codJcom);
if ($Ret->is_OK()) {
$arr_files = array_merge($arr_files, $Ret->get_data());
$Ret = Allegati\Commessa::getListFileOrdiniVen($codJcom);
if ($Ret->is_OK()) {
$arr_files = array_merge($arr_files, $Ret->get_data());
$Ret = Allegati\Commessa::getListFileDocumenti($codJcom);
if ($Ret->is_OK()) {
$arr_files = array_merge($arr_files, $Ret->get_data());
}
}
}
}
}
}
if ($Ret->is_OK()) {
?>
<div class="row">
<div class="col-md-9 col-md-offset-1"><?
if (count($arr_files) > 0) {
$arr_sourceTypes = array_unique(array_column($arr_files, "source_type"));
foreach ($arr_sourceTypes as $sourceType) {
$arr_filesGruppo = array_values(array_orderby(array_filter($arr_files, function ($x) use ($sourceType) {
return $x["source_type"] === $sourceType;
}), "file_name"));
?>
<div class="panel panel-sm panel-default panel-collapsible">
<div class="panel-heading">
<span class="font-weight-bold text-info"><?= \Allegati\SourceType::getTitle($sourceType) ?></span>
<span class="badge badge-info badge-sm"><?= count($arr_filesGruppo) ?></span>
</div>
<div class="panel-body">
<table class="tb_list-files-gestione table table-striped table-hover">
<thead>
<th colspan="2">Allegato</th>
<th>Descrizione</th>
<th class="small">Dimensioni</th>
<th class="small" style="width: 80px;">Modificato il</th>
</thead>
<tbody><?
foreach ($arr_filesGruppo as $item) {
$item["last_upd"] = isset($item["last_upd"]) ? $item["last_upd"] : null;
?>
<tr>
<td style="width: 30px;"><i
class="fa fa-2x fa-<?= $item["icon"] ?> <?= $item["icon_style"] ?>"></i></td>
<td class="text-left" title="<?= $item["file_name"] ?>">
<button class="btn btn-link p-0" data-source_type="<?= $item["source_type"] ?>"
data-key="<?= Utility::B64JSON_stringify($item["key"]) ?>">
<?= Utility\File::isKnownTypeFromName($item["file_name"]) ? pathinfo($item["file_name"], PATHINFO_FILENAME) : $item["file_name"] ?>
</button>
</td>
<td class="text-muted"><small><?= $item["descrizione"] ?></small></td>
<td class="small text-right text-muted">
<small><?= \Utility\File::formatSize($item["size"]) ?></small></td>
<td class="small text-center"
style="width: 100px;"><?= \Utility\Date\Format::DMY($item["last_upd"]) ?> <small
class="text-muted"><?= \Utility\Date\Format::HMS($item["last_upd"]) ?></small>
</td>
</tr><?
} ?>
</tbody>
</table>
</div>
</div><?
}
} else {
$Alert = new BC\Alert;
$Alert->text("Nessun file disponibile")->show();
} ?>
</div>
</div><?
} else {
$Ret->showErrorAlert();
}

View File

@@ -1,147 +0,0 @@
<?php
$Ret = StdUtils::getResources(array("zone", "nazioni", "tipiCliente"));
if ($Ret->is_OK()) {
$resources = $Ret->get_data();
$arr_zone = $resources["zone"];
$arr_nazioni = $resources["nazioni"];
$arr_tipiCliente = $resources["tipiCliente"];
Utility::includeResourceModule("view/main.js");
Utility::includeResourceModule("common/activity.js");
Utility::includeResourceModule("common/form-dest.js");
$codJcom = Utility::sanitize($_GET["view"]);
$Ret = ContattiCommesseIntegry::getCommessa($codJcom);
if ($Ret->is_OK()) {
$commessa = $Ret->get_data();
$tipoAnag = $commessa["tipo_anag"];
$codAnag = $commessa["cod_anag"];
$codVdes = $commessa["cod_vdes"];
$Ret = ContattiCommesseIntegry::getInfoCliente($tipoAnag, $codAnag);
if ($Ret->is_OK()) {
$cliente = $Ret->get_data();
if (!is_null($codVdes)) {
$Ret = ContattiCommesseIntegry::getDestinazioniCliente($tipoAnag, $codAnag, $codVdes);
if ($Ret->is_OK()) {
$dest = $Ret->get_data();
}
}
}
}
}
if ($Ret->is_OK()) {
$flag_editOnly = true;
?>
<div class="container">
<div class="row">
<div class="col-sm-6 col-xs-12">
<h2 class="text-info">Riepilogo commessa</h2>
</div>
<div class="col-sm-6 col-xs-12 mt-8">
<a href="<?= isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $_SERVER["PHP_SELF"] ?>"
onclick="/*window.history.go(-1);return false;*/" class="btn btn-default pull-right">
<i class="fa fa-angle-left"></i> Lista commesse
</a>
</div>
</div>
<div class="row mt-10">
<div class="col-xs-12">
<div class="panel panel-default panel-collapsible collapsed">
<div class="panel-heading">
<h4 class="text-info">Cliente <small><?= $cliente["cod_anag"] ?>
<small><?= htmlentities($cliente["rag_soc"]) ?></small></small></h4>
</div>
<div class="panel-body"><?php
include "form-cliente.php";
include "form-personeRif.php";
include "form-destinazione.php";
?>
<div class="row mt-20">
<div class="col-xs-12 col-md-4 col-md-offset-8">
<button id="bt_editCliente" class="btn btn-default btn-block">
Modifica
</button>
<button id="bt_saveCliente" class="btn btn-default btn-block mt-0" style="display:none;">
<span class="text-info">Aggiorna modifiche</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-10">
<div class="col-xs-12">
<div class="panel panel-default panel-collapsible collapsed">
<div class="panel-heading">
<div class="row">
<div class="col-xs-12">
<h4 class="text-info">
Commessa
<small><?= $commessa["cod_jcom"] ?>
<small><?= $commessa["descrizione"] ?></small>
</small>
<span id="printPdfComm" class="btn btn-info btn-xs pull-right"><i
class="fa fa-file-pdf"></i> Scheda Contatto</span>
</h4>
</div>
</div>
</div>
<div class="panel-body"><?php
include "form-commessa.php"; ?>
<div class="row mt-20">
<div class="col-xs-12 col-md-4 col-md-offset-8">
<button id="bt_editCommessa" class="btn btn-default btn-block">
Modifica
</button>
<button id="bt_saveCommessa" class="btn btn-default btn-block mt-0" style="display:none;">
<span class="text-info">Aggiorna modifiche</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
$Ret = ContattiCommesseIntegry::getProcessiCommessa($codJcom);
if ($Ret->is_OK()) {
$arr_processi = $Ret->get_data();
foreach ($arr_processi as $processo) {
$Ret = ContattiCommesseIntegry::getAttivitaProcesso(array("processActivityId" => $processo["activity_id"]));
include "view-attivita.php";
}
// ATTIVITA SFUSE
$processo = array("activity_id" => null, "activity_type_id" => "Altre attività");
$Ret = ContattiCommesseIntegry::getAttivitaProcesso(array("processActivityId" => null, "codJcom" => $commessa["cod_jcom"]));
if ($Ret->is_OK()) {
if (count($Ret->get_data()) > 0) {
include "view-attivita.php";
}
} else {
$Ret->showErrorAlert();
}
} else {
$Ret->showErrorAlert();
} ?>
<div class="row mt-10">
<div class="col-xs-12">
<div class="panel panel-default panel-collapsible collapsed">
<div class="panel-heading">
<h4 class="text-info">Gestione</h4>
</div>
<div class="panel-body"><?php
include "view-gestione.php"; ?>
</div>
</div>
</div>
</div>
</div><?php
} else { ?>
<div class="col-xs-12"><?php
$Ret->showErrorAlert(); ?>
</div><?php
}

View File

@@ -1,12 +0,0 @@
<?
$switchFilter = array("anag", "com", "tipoAttivita", "assegnatoA");
$filter = ContattiCommesseIntegry\PanelFilter::parseRawData($_GET, $switchFilter);
include "list-panel-filter.php";
?>
<div class="row mb-10">
<div class="col-md-3 col-md-offset-4 col-sm-6 col-sm-offset-3">
<div id="plannerWeekSelector"></div>
</div>
</div>
<div id="weeklyPlanner"></div>

View File

@@ -1,662 +0,0 @@
function PopupFormAttivita() {
this._attivita = null;
this._onSave = null;
this._onDelete = null;
this._page = null;
this._dia = null;
this._modalBox = null;
}
PopupFormAttivita.prototype.attivita = function (o) {
this._attivita = o;
return this;
};
PopupFormAttivita.prototype.onSave = function (f) {
this._onSave = f;
return this;
};
PopupFormAttivita.prototype.onDelete = function (f) {
this._onDelete = f;
return this;
};
PopupFormAttivita.prototype.page = function (v) {
this._page = v;
return this;
};
PopupFormAttivita.prototype._get$input = function (name) {
return this._modalBox.$div.find("[name='" + name + "']");
};
PopupFormAttivita.prototype._initDateIntervalAutomations = function () {
var self = this;
self._dia = new DateIntervalAutomations();
self._dia._$activityResultId = self._get$input("activity_result_id");
self._dia._$activityTypeId = self._get$input("activity_type_id");
self._dia._$dataEstimated = self._get$input("data_inizioStimata");
self._dia._$oraEstimated = self._get$input("ora_inizioStimata");
self._dia._$minEstimated = self._get$input("min_inizioStimata");
self._dia._$oraEstimatedEnd = self._get$input("ora_fineStimata");
self._dia._$minEstimatedEnd = self._get$input("min_fineStimata");
self._dia._$dataEffective = self._get$input("data_inizioEffettiva");
self._dia._$oraEffective = self._get$input("ora_inizioEffettiva");
self._dia._$minEffective = self._get$input("min_inizioEffettiva");
self._dia._$oraEffectiveEnd = self._get$input("ora_fineEffettiva");
self._dia._$minEffectiveEnd = self._get$input("min_fineEffettiva");
self._dia.init_fields();
return self;
};
PopupFormAttivita.prototype._getActivityTypeId = function () {
return this._getAttivitaProperty("activity_type_id");
};
PopupFormAttivita.prototype._initAutocompleteCommessa = function () {
var self = this;
var $div = self._modalBox.$div;
var $btResetCommessa = $div.find(".bt_resetCommessa");
self._get$input("descr_commessa").bsautocomplete({
sourceAjaxAction: "src_commessa",
item_labelKey: ["descrizione"],
item_labelSubKey: ["subtext"],
toggleSpinner: false,
onSearch: function () {
$btResetCommessa.disabled().addClass("wait");
},
onResponse: function () {
$btResetCommessa.enabled().removeClass("wait");
},
onSelect: function (e, itemResult, $this) {
self._get$input("descr_commessa").val(itemResult.descrizione).blur().readonly();
self._get$input("cod_jcom").val(itemResult.cod_jcom);
self._get$input("process_activity_id").val(itemResult.process_activity_id);
if (!is_null(itemResult.clie)) {
self._get$input("cod_anag").val(itemResult.clie.cod_anag);
self._get$input("tipo_anag").val(itemResult.clie.tipo_anag);
self._get$input("rag_soc").val(itemResult.clie.rag_soc).readonly();
self._get$input("codice_commessa").val(itemResult.clie.cod_jcom).readonly();
self._get$input("agente").val(itemResult.user_name_agen).readonly();
self._get$input("tecnico").val(itemResult.user_name_tec).readonly();
$div.find(".bt_resetCliente").disabled();
} else {
new Toast().warning("La commessa selezionata non è stata associata ad un cliente");
}
}
});
$btResetCommessa.on("click", function () {
self._get$input("descr_commessa").val("").readonly(false).focus();
self._get$input("rag_soc").val("").readonly(false);
self._get$input("process_activity_id").val("");
self._get$input("cod_jcom").val("");
self._get$input("agente").val("");
self._get$input("tecnico").val("");
self._get$input("cod_anag").val("");
self._get$input("tipo_anag").val("");
$div.find(".bt_resetCliente").enabled();
});
return self;
};
PopupFormAttivita.prototype._setCountAllegati = function (count, activity_id) {
this._modalBox.$div.find(".btOpenModalAllegati > .badge").bs_element_setStyle(zeroIfNull(count) > 0 ? "primary" : "default").text(zeroIfNull(count));
if (activity_id) {
new Ajax()
.module("allegati")
.get("getAllegatiAttivita")
.data({activity_id: activity_id})
.noticeAsToast()
.onSuccess({
callback: function (ret) {
const c = ret.returnNumber;
$(".btOpenModalAllegati > .badge").bs_element_setStyle(c > 0 ? "primary" : "default").text(c);
return this;
}
})
.execute();
}
return this;
};
PopupFormAttivita.prototype._initAutocompleteCliente = function () {
var self = this;
var $div = self._modalBox.$div;
var $btResetCliente = $div.find(".bt_resetCliente");
var $btResetCommessa = $div.find(".bt_resetCommessa");
self._get$input("rag_soc").bsautocomplete({
sourceAjaxAction: "src_clienteCommessa",
item_labelKey: ["rag_soc", "cod_anag"],
item_labelSubKey: ["descr_stato", "indirizzo", "citta", "prov"],
toggleSpinner: false,
onSearch: function () {
$btResetCliente.disabled().addClass("wait");
},
onResponse: function () {
$btResetCliente.enabled().removeClass("wait");
},
onSelect: function (e, clieData, $this) {
self._get$input("rag_soc").val(clieData.rag_soc).readonly();
self._get$input("cod_anag").val(clieData.cod_anag);
self._get$input("tipo_anag").val(clieData.tipo_anag);
self._get$input("descr_commessa").val("").readonly();
self._get$input("cod_jcom").val("");
self._get$input("process_activity_id").val("");
$btResetCommessa.disabled();
}
});
$btResetCliente.on("click", function () {
self._get$input("rag_soc").val("").readonly(false).focus();
self._get$input("descr_commessa").val("").readonly(false);
self._get$input("cod_jcom").val("");
self._get$input("agente").val("");
self._get$input("tecnico").val("");
self._get$input("cod_anag").val("");
self._get$input("process_activity_id").val("");
self._get$input("tipo_anag").val("");
$btResetCommessa.enabled();
});
return self;
};
PopupFormAttivita.prototype._initSelectUsername = function () {
var self = this;
self._get$input("user_name").attr("multiple", "").val(null);
self._get$input("user_name").selectpicker({
iconBase: "fa",
tickIcon: "fa-check",
noneSelectedText: "NESSUNA SELEZIONE",
selectedTextFormat: "count > 1",
countSelectedText: function () {
return "{0} UTENTI SELEZIONATI";
}
}).on("change", function () {
var value = $(this).getValue();
var $select = $(this).closest(".bootstrap-select");
$select.tooltip({title: "Saranno create più attività separate", delay: 3000});
if (!is_null(value) && value.length > 1) {
if (value.length == 2) {
$select.tooltip("show");
}
} else {
$select.tooltip("hide");
}
});
return self;
};
PopupFormAttivita.prototype._initDataStimata = function () {
var self = this;
var estimatedTime = self._getAttivitaProperty("estimated_time");
var estimatedEndtime = self._getAttivitaProperty("estimated_endtime");
if (!is_null(estimatedTime)) {
self._get$input("data_inizioStimata").val(estimatedTime.unixtime_format("DD/MM/YYYY"));
self._dia.set_timePicker(estimatedTime, self._get$input("ora_inizioStimata"), self._get$input("min_inizioStimata"));
if (!is_null(estimatedEndtime)) {
self._dia.set_timePicker(estimatedEndtime, self._get$input("ora_fineStimata"), self._get$input("min_fineStimata"));
}
}
return self;
};
PopupFormAttivita.prototype._initDataEffettiva = function () {
var self = this;
var effectiveTime = self._getAttivitaProperty("effective_time");
var effectiveEndtime = self._getAttivitaProperty("effective_endtime");
var flagActivityResult = self._dia.get_flagActivityResult();
if (flagActivityResult) {
if (!is_null(effectiveTime)) {
self._get$input("data_inizioEffettiva").val(effectiveTime.unixtime_format("DD/MM/YYYY"));
self._dia.set_timePicker(effectiveTime, self._get$input("ora_inizioEffettiva"), self._get$input("min_inizioEffettiva"));
}
if (!is_null(effectiveEndtime)) {
self._dia.set_timePicker(effectiveEndtime, self._get$input("ora_fineEffettiva"), self._get$input("min_fineEffettiva"));
}
}
return self;
};
PopupFormAttivita.prototype._initBtViewWeekActivities = function () {
var self = this;
var $div = self._modalBox.$div;
$div.find(".bt_viewWeekActivities").on("click", function () {
var $bt = $(this);
var userName = self._get$input("user_name").getValue();
var $dataEstimated = self._get$input("data_inizioStimata");
var $oraEstimated = self._get$input("ora_inizioStimata");
var $minEstimated = self._get$input("min_inizioStimata");
_contattiCommesse.activity.viewWeekItems(userName, $dataEstimated, $oraEstimated, $minEstimated, $bt);
});
return self;
};
PopupFormAttivita.prototype._initInputsNuovaAttivita = function () {
var self = this;
var $div = self._modalBox.$div;
$div.find("[data-text='descr_commessa']").closest(".row").hide();
// RICERCA E SELEZIONE COMMESSA (+ CLIENTE SOLO SU COMMESSA INTERNA)
if (is_null(self._getCodJcom())) {
self._initAutocompleteCommessa()
._initAutocompleteCliente();
} else {
self._get$input("process_activity_id").val(self._getAttivitaProperty("process_activity_id"));
var $codJcom = self._get$input("cod_jcom");
$codJcom.val(self._getCodJcom());
$codJcom.closest(".row").hide();
}
var dataEstimated = self._getAttivitaProperty("date");
if (!is_null(dataEstimated)) {
self._get$input("data_inizioStimata").val(dataEstimated.unixtime_format("DD/MM/YYYY"));
}
if (is_null(self._getAttivitaProperty("user_name"))) {
self._initSelectUsername();
}
return self;
};
PopupFormAttivita.prototype._fillFormData = function () {
var self = this;
var $div = self._modalBox.$div;
var $txtCodJcom = $div.find("[data-text='cod_jcom']");
var $txtDescrCommessa = $div.find("[data-text='descr_commessa']");
if (self._getAttivitaProperty("is_commessaInterna")) {
$txtCodJcom.hide();
$txtDescrCommessa.text("Attività interna");
} else {
$txtCodJcom.show().text(self._getCodJcom());
$txtDescrCommessa.text(self._getAttivitaProperty("descr_commessa"));
}
var $txtRagSocClie = $div.find("[data-text='rag_soc_clie']");
var $txtCodAnagClie = $div.find("[data-text='cod_anag_clie']");
var $btOpenDetClie = $div.find(".bt_openDetClie");
if (!is_null(self._getAttivitaProperty("cod_anag_clie"))) {
$txtCodAnagClie.text(self._getAttivitaProperty("cod_anag_clie"));
$txtRagSocClie.text(self._getAttivitaProperty("rag_soc_clie"));
$btOpenDetClie.attr("data-tipo_anag", self._getAttivitaProperty("tipo_anag_clie"))
.attr("data-cod_anag", self._getAttivitaProperty("cod_anag_clie"));
} else {
$txtRagSocClie.text("Non specificato");
$btOpenDetClie.disabled();
}
self._get$input("cod_jcom").closest(".row").hide();
self._get$input("activity_result_id").val(self._getAttivitaProperty("activity_result_id"));
return self;
};
PopupFormAttivita.prototype._initInputsAttivitaEsistente = function () {
var self = this;
self._initDataStimata();
if (!self._get$input("activity_result_id").valueIsEmpty()) {
self._initDataEffettiva();
}
if ((_USER.is_agente() || _USER.is_tecnico()) && !self._isCreatedFromUser()) {
self._get$input("activity_description").readonly();
}
if (_USER.is_agente() || _USER.is_tecnico()) {
self._get$input("activity_type_id").readonly();
self._get$input("user_name").readonly();
}
return self;
};
PopupFormAttivita.prototype._isNuovaAttivita = function () {
return is_null(this._getActivityId());
};
PopupFormAttivita.prototype.open = function () {
var self = this;
self._modalBox = new ModalBox();
var title = "<i class='fa fa-calendar-plus'></i> Assegna nuova attivit&agrave;";
if (!self._isNuovaAttivita()) {
title = "<i class='fa fa-calendar'></i> Modifica attivit&agrave;";
}
if (self._isNuovaAttivita()) {
self._modalBox.yesNo()
.btNo("cancel")
.btYes(self._getSalvaBtOptions());
} else {
self._modalBox.yesNoCancel()
.btCancel(self._getEliminaBtOptions())
.btNo(self._getSalvaBtOptions())
.btYes(self._getSalvaEGeneraSuccessivaBtOptions());
}
self._modalBox.onBeforeShow(function () {
self._initDateIntervalAutomations();
self._get$input("activity_type_id").val(self._getActivityTypeId());
self._get$input("user_name").val(self._getAttivitaProperty("user_name"));
self._get$input("activity_description").val(self._getAttivitaProperty("activity_description"));
self._get$input("note").val(self._getAttivitaProperty("note"));
if (self._isNuovaAttivita()) {
self._initInputsNuovaAttivita();
} else {
self._fillFormData()
._initInputsAttivitaEsistente();
}
self._dia.refresh_effectiveFieldsVisibility()
.init_events()
.refresh_estimatedDuration()
.refresh_effectiveDuration();
self._initBtViewWeekActivities()
._initBtModalAllegati()
._setCountAllegati(0, self._getAttivitaProperty("activity_id"));
$("#bt_nuovoCliente").on("click", function (e) {
e.preventDefault();
new PopupFormCliente()
.attivita(null)
.onSave(function () {
_APP.location.reload();
})
.page("list-commesse")
.open();
return false;
});
}).onShow(function () {
var $activityDescription = self._get$input("activity_description");
if (!$activityDescription.is("[readonly]")) {
_common.init_descrAttivitaSuggestion(self._get$input("activity_type_id"), $activityDescription);
}
})
.content(_contattiCommesse.module.get_template("popup-edit-attivita"))
// .data({
// activity_id: self._getAttivitaProperty("activity_id"),
// })
.title(title)
.gridSize({xs: 12, sm: 11, md: 10})
.yesNoCancel().draggable().backhash().primary().show();
};
PopupFormAttivita.prototype._initBtModalAllegati = function () {
var self = this;
var $div = self._modalBox.$div;
var $bt = $div.find(".btOpenModalAllegati");
var _openModal = function () {
$div.find(".btOpenModalAllegati").on("click", function () {
if (_allegati.isLoaded()) {
new ModalAllegati()
.activityId(self._getActivityId())
.sourceTypes([_allegati.sourceTypes.ATTIVITA])
.allowUpload([_allegati.sourceTypes.ATTIVITA])
.allowDelete([_allegati.sourceTypes.ATTIVITA])
.editableDescription([_allegati.sourceTypes.ATTIVITA])
.$button($bt)
.onChange(function () {
var c = $("#m_tbAllegati").children("tbody").children().length;
self._setCountAllegati(c, null);
if (self._page === "list-attivita") {
// AGGIORNO CONTATORE IN LISTA ATTIVITA
$("tr[data-activity_id='" + self._getActivityId() + "'] .bt_viewFiles > .badge").bs_element_setStyle(c > 0 ? "primary" : "default").text(c);
}
})
.open();
}
});
};
if (self._isNuovaAttivita()) {
$bt.disabled().attr("title", "Non è possibile allegare file durante l'inserimento di una nuova attività");
} else {
_openModal();
}
return self;
};
PopupFormAttivita.prototype._getAttivitaProperty = function (key) {
var self = this;
return !is_null(self._attivita) && key in self._attivita ? self._attivita[key] : null;
};
PopupFormAttivita.prototype._getActivityId = function () {
return this._getAttivitaProperty("activity_id");
};
PopupFormAttivita.prototype._getCodJcom = function () {
return this._getAttivitaProperty("cod_jcom");
};
PopupFormAttivita.prototype._getParentActivityId = function () {
return this._getAttivitaProperty("parent_activity_id");
};
PopupFormAttivita.prototype._isNuovaAttivitaSuccessiva = function () {
var self = this;
return self._isNuovaAttivita() && !is_null(self._attivita) && !is_null(self._getCodJcom());
};
PopupFormAttivita.prototype._getEliminaBtOptions = function () {
var self = this;
return {
text: "Elimina", style: "default", icon: "trash", iconStyle: "danger", size: {md: 3, sm: 5, xs: 6},
onClick: function (e, $bt, $div) {
_contattiCommesse.activity.delete({
activity_id: self._getActivityId(),
cod_jcom: self._getCodJcom()
}, $bt).done(function () {
self._modalBox.close();
if (is_function(self._onDelete)) {
self._onDelete();
}
});
}
};
};
PopupFormAttivita.prototype._isCreatedFromUser = function () {
return this._getAttivitaProperty("is_createdFromUser");
};
PopupFormAttivita.prototype._retrieveFormData = function () {
var self = this;
var $div = self._modalBox.$div;
var formData = _checkForm.retrieveData($div, false, true);
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;
if (is_null(formData.estimated_time)) {
return {success: false, message: "Ora inizio pianificazione non valida"};
} else {
formData.estimated_endtime = self._dia.get_estimatedEndtime();
if (is_null(formData.estimated_endtime)) {
return {success: false, message: "Ora fine pianificazione non valida"};
} else if (formData.estimated_time > formData.estimated_endtime) {
return {
success: false,
message: "L'ora di fine pianificazione non può essere inferiore a quella di inizio"
};
}
}
/*
if(!self._isCreatedFromUser()){
delete data.activity_type_id;
}*/
var flagActivityResult = !is_null(formData.activity_result_id) ? (self._get$input("activity_result_id").optionSelected().getIntDataAttr("flag_activity_result") === 1) : false;
if (flagActivityResult) {
formData.effective_time = self._dia.get_effectiveTime();
formData.effective_endtime = self._dia.get_effectiveEndtime();
if (is_null(formData.effective_time)) {
return {success: false, message: "Ora inizio effettiva non valida"};
} else if (is_null(formData.effective_endtime)) {
return {success: false, message: "Ora fine effettiva non valida"};
} else if (!is_null(formData.effective_time) && !is_null(formData.effective_endtime) && formData.effective_time > formData.effective_endtime) {
return {success: false, message: "L'ora di fine effettiva non può essere inferiore a quella di inizio"};
}
}
delete formData.rag_soc;
delete formData.descr_commessa;
delete formData.data_inizioStimata;
delete formData.ora_inizioStimata;
delete formData.min_inizioStimata;
delete formData.ora_fineStimata;
delete formData.min_fineStimata;
delete formData.data_inizioEffettiva;
delete formData.ora_inizioEffettiva;
delete formData.min_inizioEffettiva;
delete formData.ora_fineEffettiva;
delete formData.min_fineEffettiva;
return {success: true, data: formData};
}
return {success: false, message: "Verificare che siano stati compilati tutti i campi richiesti"};
};
PopupFormAttivita.prototype._salva = function ($bt) {
var self = this;
var d = new $.Deferred();
var formDataValidation = self._retrieveFormData();
if (formDataValidation.success) {
new Ajax()
.post("saveAttivita")
.data(formDataValidation.data)
.noticeAsToast()
.$toDisable(self._modalBox)
.$button($bt)
.onSuccess({
toast: {message: "L'attivit&agrave; &egrave; stata salvata"},
callback: function (ret) {
ret.returnData.attivita = formDataValidation.data;
d.resolve(ret);
}
})
.execute();
} else {
new Toast().warning(formDataValidation.message, "Dati non validi o incompleti");
}
return d;
};
PopupFormAttivita.prototype._getSalvaBtOptions = function () {
var self = this;
return {
text: "Salva", style: "primary", icon: "check", size: {md: 3, sm: 5, xs: 6},
onClick: function (e, $bt, $div) {
self._salva($bt).then(function (ret) {
self._modalBox.close();
self._onSave(ret);
});
}
};
};
PopupFormAttivita.prototype._getSalvaEGeneraSuccessivaBtOptions = function () {
var self = this;
return {
text: "Salva e genera successiva", style: "success", icon: "arrow-right", size: {md: 3, sm: 5, xs: 6},
onClick: function (e, $bt, $div) {
self._salva($bt).then(function (ret) {
var attivita = ret.returnData.attivita;
var newAttivita = {
activity_id: null,
activity_result_id: null,
activity_description: attivita.activity_description,
activity_type_id: attivita.activity_type_id,
cod_jcom: attivita.cod_jcom,
data_inizio: null,
effective_endtime: null,
effective_time: null,
estimated_endtime: null,
estimated_time: null,
note: attivita.note,
parent_activity_id: attivita.parent_activity_id,
user_name: attivita.user_name
};
self._modalBox.onClose(function () {
if (is_function(self._onSave)) {
self._onSave(ret);
}
var popupAttivitaSuccessiva = new PopupFormAttivita();
popupAttivitaSuccessiva
.attivita(newAttivita)
.onSave(self._onSave)
.page(self._page)
.open();
// delete self;
}).close(true);
});
}
};
};

View File

@@ -1,270 +0,0 @@
function PopupFormCliente() {
this._attivita = null;
this._onSave = null;
this._onDelete = null;
this._page = null;
this._dia = null;
this._modalBox = null;
}
PopupFormCliente.prototype.attivita = function (o) {
this._attivita = o;
return this;
};
PopupFormCliente.prototype.onSave = function (f) {
this._onSave = f;
return this;
};
PopupFormCliente.prototype.onDelete = function (f) {
this._onDelete = f;
return this;
};
PopupFormCliente.prototype.page = function (v) {
this._page = v;
return this;
};
PopupFormCliente.prototype.open = function () {
let self = this;
self._modalBox = new ModalBox();
let title = "<i class='fa fa-user-plus'></i> Nuovo Cliente";
self._modalBox.yesNo()
.btNo("cancel")
.btYes(self._getSalvaBtOptions());
self._modalBox.onBeforeShow(function () {
$("input[name='flag_informativa']").parent().btn_checkbox();
$("input[name='flag_consenso']").parent().btn_checkbox();
_common.init_checkRagSoc(self._modalBox)
.init_autocompleteLocation();
self.init_checkPartIva()
.init_checkCodFisc();
_APP.stopModalLoader();
}).onShow(function () {
})
.content(_contattiCommesse.module.get_template("popup-form-cliente"))
.title(title)
.gridSize({xs: 12, sm: 11, md: 10})
.yesNoCancel().draggable().backhash().success().show();
};
PopupFormCliente.prototype.init_checkPartIva = function () {
let self = this;
$("input[name='part_iva']").check_pIva({
$nazione: $("input[name='nazione']"),
success: function (retData, $input) {
if (!is_null(retData)) {
let ragSoc = retData.name;
let datiIndirizzo = retData;
let partIva = $input.getValue();
let ajax = new Ajax();
ajax.get("check_partIvaAnag")
.data({partIva: partIva})
.noticeAsModal()
.onSuccess(function (ret) {
let modalBox = new ModalBox();
let clieData = ret.returnData;
if (is_null(clieData)) {
let descrResult = "<b>" + ragSoc + "</b>";
if (!is_null(datiIndirizzo.indirizzo)) {
descrResult += "</br><b><small>" + format_indirizzoCompleto(datiIndirizzo) + "</small></b>";
}
let message = "La Partita Iva <b>" + partIva + "</b> corrisponderebbe al seguente risultato:<br/></br>" + descrResult + "<br/><br/>Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Verifica della Partita Iva").then(function (ret) {
if (ret) {
$("input[name='rag_soc']").val(ragSoc.substring(0, 40));
$("input[name='indirizzo']").val(datiIndirizzo.indirizzo);
$("input[name='citta']").val(datiIndirizzo.citta);
$("input[name='cap']").val(datiIndirizzo.cap);
$("input[name='prov']").val(datiIndirizzo.prov);
$("select[name='cod_vtip']").selectpicker("val", "");
}
});
} else {
let tipoAnag = $("input[name='tipo_anag']").getValue();
let codAnag = $("input[name='cod_anag']").getValue();
if (!(tipoAnag === clieData.tipo_anag && codAnag === clieData.cod_anag)) {
let message = "La Partita Iva <b>" + partIva + "</b> è registrata a <b>" + clieData.cod_anag + " - " + clieData.rag_soc + "</b>.<br/><br/>";
message += "Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Partita Iva").then(function (ret) {
if (ret) {
self._modalBox.close();
_common.fill_formCliente(clieData);
} else {
$input.val("");
}
});
}
}
})
.onUnsuccess(function () {
$input.val("");
})
.execute();
}
},
error: function (errorText) {
let modalBox = new ModalBox();
modalBox.warning("La verifica della partita non è andata a buon fine.<br/>Effettuare le opportune verifiche (anche sulla nazione) e riprovare.<br/><br/>" + errorText, "Partita Iva non valida");
}
});
return this;
};
PopupFormCliente.prototype.init_checkCodFisc = function () {
let self = this;
$("input[name='cod_fisc']").on("change", function () {
let $input = $(this);
if (!$input.valueIsEmpty()) {
let codFisc = $input.getValue();
let ajax = new Ajax();
ajax.get("check_codFiscAnag")
.data({codFisc: codFisc})
.noticeAsToast()
.onSuccess(function (ret) {
let modalBox = new ModalBox();
let clieData = ret.returnData;
if (!is_null(clieData)) {
let tipoAnag = $("input[name='tipo_anag']").getValue();
let codAnag = $("input[name='cod_anag']").getValue();
if (!(tipoAnag === clieData.tipo_anag && codAnag === clieData.cod_anag)) {
let message = "Il cod. fiscale <b>" + codFisc + "</b> è registrato a <b>" + clieData.cod_anag + " - " + clieData.rag_soc + "</b>.<br/><br/>";
message += "Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Codice fiscale").then(function (ret) {
if (ret) {
self._modalBox.close();
_common.fill_formCliente(clieData);
} else {
$input.val("");
}
});
}
}
})
.onUnsuccess(function () {
$input.val("");
})
.execute();
}
});
return this;
};
PopupFormCliente.prototype._getSalvaBtOptions = function () {
let self = this;
return {
text: "Salva", style: "primary", size: {xs: 3},
onClick: function (e, $bt) {
self._salva($bt).then(function (ret) {
self._modalBox.close();
self._onSave(ret);
});
}
};
};
PopupFormCliente.prototype._salva = function ($bt) {
let self = this;
let d = new $.Deferred();
let formDataValidation = self._retrieveFormData();
if (formDataValidation.success) {
new Ajax()
.post("save_prospect")
.data(formDataValidation.data)
.noticeAsToast()
.$toDisable(self._modalBox)
.$button($bt)
.onSuccess({
toast: {message: "Il cliente &egrave; stato salvato"},
callback: function () {
let clieData = formDataValidation.data.cliente;
self._modalBox.close();
$("input[name='rag_soc']").val(clieData.rag_soc).readonly();
$("input[name='cod_anag']").val(clieData.cod_anag);
$("input[name='tipo_anag']").val(clieData.tipo_anag);
$("input[name='descr_commessa']").val("").readonly();
$("input[name='cod_jcom']").val("");
$("input[name='process_activity_id']").val("");
}
})
.execute();
} else {
new Toast().warning(formDataValidation.message, "Dati non validi o incompleti");
}
return d;
};
PopupFormCliente.prototype.check_formClie = function () {
let clieData = _checkForm.checkData($("#form-cliente"));
if (clieData !== false) {
return {returnId: 1, returnData: clieData};
} else {
return {returnId: -1, errorText: "Compila tutti i dati richiesti per il cliente"};
}
};
PopupFormCliente.prototype.check_formPersRif = function () {
let ret = {returnId: 1, returnData: []};
$("#form-persRif").find("tbody").children().each(function () {
if (ret.returnId === 1) {
let $tr = $(this);
let d = _checkForm.checkData($tr);
if (d !== false) {
ret.returnData.push(d);
} else {
ret = {returnId: -1, errorText: "Compilare tutti i campi richiesti per le persone di riferimento"};
return false;
}
}
});
return ret;
};
PopupFormCliente.prototype._retrieveFormData = function () {
let self = this;
let $div = self._modalBox.$div;
let formData = _checkForm.retrieveData($div, false, true);
let cliente = null, persRif = null;
let ret = self.check_formClie();
if (ret.returnId === 1) {
cliente = ret.returnData;
ret = self.check_formPersRif();
if (ret.returnId === 1) {
persRif = ret.returnData;
}
}
if (ret.returnId === 1) {
let data = {
cliente: cliente,
persRif: persRif,
};
return {success: true, data: data};
}
return {success: false, message: "Verificare che siano stati compilati tutti i campi richiesti"};
};

View File

@@ -1,156 +0,0 @@
_contattiCommesse.activity = {
get_page: function () {
if (isset_urlParameter("view")) {
return "view-commessa";
} else if (isset_urlParameter("commesse")) {
return "list-commesse";
} else if (isset_urlParameter("attivita")) {
return "list-attivita";
} else if (isset_urlParameter("planner")) {
return "planner";
}
return null;
},
delete: function (attivita, $bt) {
var d = $.Deferred();
var ajax = new Ajax();
ajax.post("deleteAttivita")
.data({codJcom: attivita.cod_jcom, activityId: attivita.activity_id})
.confirmModal({
message: "Stai rimuovendo un'attività",
title: "Attività <b>" + attivita.activity_id + "</b>",
yesText: "Continua",
noText: "Annulla"
})
.$toDisable($bt.closest(".modal-box"))
.$button($bt)
.noticeAsModal()
.promise(d)
.onSuccess({
toast: {
message: "L'attivit&agrave; &egrave; stata eliminata",
title: "Attività <b>" + attivita.activity_id + "</b>"
},
})
.execute();
return d.promise();
},
build_popoverActivity: function (attivita) {
let isCommessaInterna = attivita.is_commessaInterna;
let fromTime = !is_null(attivita.data_inizio) ? attivita.data_inizio.unixtime_format("HH:mm") : "";
let toTime = !is_null(attivita.data_fine) ? attivita.data_fine.unixtime_format("HH:mm") : "";
let style = attivita.stato === 1 ? "success" : (attivita.stato === 0 ? "warning" : "danger");
let popoverTitle = "<b>" + attivita.activity_type_id + "</b><br/>";
popoverTitle += "<div class='mt-4 text-muted' style='font-size: 10px'><i class='fa fa-clock'></i> " + fromTime + " - " + toTime + "</div>";
let popoverContent = "<b>" + (isCommessaInterna ? "Attività interna" : `${attivita.cod_jcom} - ${attivita.descr_commessa}`) + "</b><br/>";
if (isCommessaInterna && !is_null(attivita.cod_anag_clie) && !is_null(attivita.tipo_anag_clie)) {
popoverContent += "<small class='text-muted'>" + attivita.rag_soc_clie + "</small><br/>";
}
if (!is_null(attivita.citta) && !is_null(attivita.prov)) {
popoverContent += "<div style='font-size: 14px'>" + attivita.citta + " (" + attivita.prov + ")</div>";
}
popoverContent += "<small>" + attivita.activity_description + "</small>";
popoverContent += !is_null(attivita.note) ? "<br/><small class='text-muted'>" + attivita.note + "</small>" : "";
let popover = {
title: popoverTitle,
content: popoverContent,
container: "body",
trigger: isMobile() ? "manual" : "hover",
//trigger: "click",
placement: "top",
html: true,
style: style
};
return popover;
},
_setWeekItems: function (modalWeekPlanner, arr_userName) {
var self = this;
var d = $.Deferred();
var ajax = new Ajax();
ajax.get("getListAttivitaSettimana")
.data({user_name: arr_userName, data_stimated_from: modalWeekPlanner.getFrom()})
.exclusiveXHR()
.$toDisable(modalWeekPlanner)
.noticeAsToast()
.onSuccess(function (ret) {
d.resolve(true);
modalWeekPlanner.show();
var arr_attivita = ret.returnData;
for (var i = 0; i < arr_attivita.length; i++) {
var attivita = arr_attivita[i];
var popover = self.build_popoverActivity(attivita);
var fromTime = !is_null(attivita.data_inizio) ? attivita.data_inizio.unixtime_format("HH:mm") : null;
var toTime = !is_null(attivita.data_fine) ? attivita.data_fine.unixtime_format("HH:mm") : null;
var style = attivita.stato == 1 ? "success" : (attivita.stato == 0 ? "warning" : "danger");
var weekPlannerItem = new ModalWeekPlannerItem();
weekPlannerItem
.day(attivita.data_inizio)
.time(fromTime)
.fromTime(fromTime)
.toTime(toTime)
.popover(popover)
.text(attivita.user_name)
.style(style)
.asBadge();
modalWeekPlanner.setCellContent(weekPlannerItem);
}
})
.onUnsuccess(function () {
d.resolve(false);
modalWeekPlanner.close();
})
.execute();
return d;
},
viewWeekItems: function (arr_userName, $dataEstimated, $oraEstimated, $minEstimated, $bt) {
var self = this;
if (!is_null(arr_userName) && arr_userName.length > 0) {
var m = $dataEstimated.getMoment();
if (is_null(m)) {
m = moment(); // today
}
var modalWeekPlanner = new ModalWeekPlanner();
modalWeekPlanner
.week(m.format("W"))
.year(m.format("YYYY"))
.$datepicker($dataEstimated)
.onChange(function () {
self._setWeekItems(modalWeekPlanner, arr_userName);
})
.onSelect(function (retData) {
$oraEstimated.val(pad(retData.hour, 2));
$minEstimated.val("00");
$oraEstimated.trigger("change"); // fa partire il calcolo della ora fine
modalWeekPlanner.close();
});
$bt.disableAll();
self._setWeekItems(modalWeekPlanner, arr_userName).then(function () {
$bt.enableAll();
});
} else {
var toast = new Toast();
toast.warning("&Egrave; necessario selezionare gli utenti e la data prevista");
}
}
};

View File

@@ -1,286 +0,0 @@
$(function () {
$("#bt_getExcel").on("click", function () {
var tab = "commesse";
if (isset_urlParameter("attivita")) {
tab = "attivita";
} else if (isset_urlParameter("clienti")) {
tab = "clienti";
} else if (isset_urlParameter("planner")) {
tab = "planner";
}
var $bt = $(this);
var filter = _contattiCommesse.filter.get_urlMatched();
var ajax = new Ajax();
ajax.get("exportExcelCommesseFiltrate")
.data({tab: tab, filter: filter})
.$button($bt)
.noticeAsModal()
.onSuccess({downloadFile: true})
.execute();
});
$("#bt_newPersRif").on("click", function () {
var $tbody = $("#form-persRif").find("tbody");
var $tr = _contattiCommesse.module.get_$template("tr-pers_rif");
$tbody.append($tr);
$tr.find("input:not([name='persona_rif'])").readonly();
$tr.find("[name='mansione']").dropmenuSuggestion({items: _contattiCommesse.arr_mansioni});
$tr.find("button").visible();
});
$(document).on("change", "input[name='persona_rif']", function (e) {
var $tr = $(this).closest("tr");
if ($(this).valueIsEmpty()) {
$tr.find("input:not([name='persona_rif'])").readonly().val("");
$tr.find("button").disabled();
} else {
$tr.find("input").readonly(false);
$tr.find("button").enabled();
}
});
$(document).on("click", ".remove_persRif", function () {
$(this).closest("tr").remove();
});
$(document).on("click", ".bt_openDetClie", function (e) {
e.stopPropagation();
var $bt = $(this);
var ajax = new Ajax();
ajax.get("popup-clie")
.data({
codAnag: $bt.getDataAttr("cod_anag"),
tipoAnag: $bt.getDataAttr("tipo_anag"),
codVdes: $bt.getDataAttr("cod_vdes")
})
.$button($bt)
.noticeAsModal()
.onSuccess(function (ret) {
var returnData = ret.returnData;
var title = "<i class='fa fa-user-circle'></i> " + returnData.ragSoc + " <small>" + returnData.codAnag + "</small>";
var modalBox = new ModalBox();
modalBox.backhash().draggable().closeOnly().lg().primary(ret.returnString, title);
}).execute();
});
});
var _common = {
getListMansioniPersRif: function () {
var d = $.Deferred();
var ajax = new Ajax();
ajax.get("getListMansioniPersRif")
.noticeAsToast()
.onSuccess(function (ret) {
d.resolve(ret.returnData);
})
.onUnsuccess(function () {
d.resolve([]);
})
.execute();
return d;
},
init_checkPartIva: function (replaceIntoForm) {
$("input[name='part_iva']").check_pIva({
$nazione: $("input[name='nazione']"),
success: function (retData, $input) {
if (!is_null(retData)) {
let ragSoc = retData.name;
let datiIndirizzo = retData;
let partIva = $input.getValue();
let ajax = new Ajax();
ajax.get("check_partIvaAnag")
.data({partIva: partIva})
.noticeAsModal()
.onSuccess(function (ret) {
let modalBox = new ModalBox();
let clieData = ret.returnData;
if (is_null(clieData)) {
let descrResult = "<b>" + ragSoc + "</b>";
if (!is_null(datiIndirizzo.indirizzo)) {
descrResult += "</br><b><small>" + format_indirizzoCompleto(datiIndirizzo) + "</small></b>";
}
let message = "La Partita Iva <b>" + partIva + "</b> corrisponderebbe al seguente risultato:<br/></br>" + descrResult + "<br/><br/>Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Verifica della Partita Iva").then(function (ret) {
if (ret) {
$("input[name='rag_soc']").val(ragSoc);
$("input[name='indirizzo']").val(datiIndirizzo.indirizzo);
$("input[name='citta']").val(datiIndirizzo.citta);
$("input[name='cap']").val(datiIndirizzo.cap);
$("input[name='prov']").val(datiIndirizzo.prov);
$("select[name='cod_vtip']").selectpicker("val", "");
}
});
} else {
let tipoAnag = $("input[name='tipo_anag']").getValue();
let codAnag = $("input[name='cod_anag']").getValue();
if (!(tipoAnag == clieData.tipo_anag && codAnag == clieData.cod_anag)) {
let message = "La Partita Iva <b>" + partIva + "</b> è registrata a <b>" + clieData.cod_anag + " - " + clieData.rag_soc + "</b>.<br/><br/>";
if (replaceIntoForm) {
message += "Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Partita Iva").then(function (ret) {
if (ret) {
_contattiCommesse.fill_formCliente(clieData);
} else {
$input.val("");
}
});
} else {
message += "Non è possibile specificarla per un contatto diverso";
modalBox.warning(message, "Partita Iva");
$input.val("");
}
}
}
})
.onUnsuccess(function () {
$input.val("");
})
.execute();
}
},
error: function (errorText, $input) {
let modalBox = new ModalBox();
modalBox.warning("La verifica della partita non è andata a buon fine.<br/>Effettuare le opportune verifiche (anche sulla nazione) e riprovare.<br/><br/>" + errorText, "Partita Iva non valida");
}
});
return this;
},
init_checkCodFisc: function (replaceIntoForm) {
$("input[name='cod_fisc']").on("change", function () {
let $input = $(this);
if (!$input.valueIsEmpty()) {
let codFisc = $input.getValue();
let ajax = new Ajax();
ajax.get("check_codFiscAnag")
.data({codFisc: codFisc})
.noticeAsToast()
.onSuccess(function (ret) {
let modalBox = new ModalBox();
let clieData = ret.returnData;
if (!is_null(clieData)) {
let tipoAnag = $("input[name='tipo_anag']").getValue();
let codAnag = $("input[name='cod_anag']").getValue();
if (!(tipoAnag == clieData.tipo_anag && codAnag == clieData.cod_anag)) {
let message = "Il cod. fiscale <b>" + codFisc + "</b> è registrato a <b>" + clieData.cod_anag + " - " + clieData.rag_soc + "</b>.<br/><br/>";
if (replaceIntoForm) {
message += "Si desidera immetterlo nel form?";
modalBox.yesNo().info(message, "Codice fiscale").then(function (ret) {
if (ret) {
_campagneMarketing.fill_formCliente(clieData, false);
} else {
$input.val("");
}
});
} else {
message += "Non è possibile specificarla per un contatto diverso";
modalBox.warning(message, "Codice fiscale");
$input.val("");
}
}
}
})
.onUnsuccess(function () {
$input.val("");
})
.execute();
}
});
return this;
},
init_checkRagSoc: function (_modalBox) {
$("input[name='rag_soc']").bsautocomplete({
sourceAjaxAction: "src_clienteCommessa",
item_labelKey: ["rag_soc", "cod_anag"],
item_labelSubKey: ["descr_stato", "indirizzo", "citta", "prov"],
toggleSpinner: false,
onSelect: function (e, clieData, $this) {
_modalBox.close();
self.fill_formCliente(clieData);
}
});
return this;
},
fill_formCliente: function (clieData) {
let rag_soc = (clieData.rag_soc).substring(0, 40);
$("input[name='rag_soc']").val(rag_soc).readonly();
$("input[name='cod_anag']").val(clieData.cod_anag);
$("input[name='tipo_anag']").val(clieData.tipo_anag);
$("input[name='descr_commessa']").val("").readonly();
$("input[name='cod_jcom']").val("");
$("input[name='process_activity_id']").val("");
},
init_autocompleteLocation: function () {
let $formClie = $("#form-cliente");
_formUtils.init_autocompleteLocation({
$cap: $formClie.find("[name='cap']"),
$indirizzo: $formClie.find("[name='indirizzo']"),
$citta: $formClie.find("[name='citta']"),
$prov: $formClie.find("[name='prov']"),
$nazione: $formClie.find("[name='nazione']")
});
let $formDest = $("#form-destinazione");
_formUtils.init_autocompleteLocation({
$cap: $formDest.find("[name='cap']"),
$indirizzo: $formDest.find("[name='indirizzo']"),
$citta: $formDest.find("[name='citta']"),
$prov: $formDest.find("[name='prov']"),
$nazione: $formDest.find("[name='nazione']")
});
return this;
},
init_descrAttivitaSuggestion: function ($activityTypeId, $activityDescription) {
$activityDescription.dropmenuSuggestion({
btnHtml: "<span class='hidden-xs'>Suggeriti</span> <span class='caret'></span>"
});
$activityTypeId.on("change", function () {
var activityTypeId = $(this).getValue();
if (!is_null(activityTypeId)) {
var ajax = new Ajax();
ajax.get("get_listSuggActivityDescription")
.data({activity_type_id: activityTypeId})
.noticeAsToast()
.onSuccess(function (ret) {
$activityDescription.dropmenuSuggestion("refreshChildren", ret.returnData);
$activityDescription.bsautocomplete({
sourceStatic: ret.returnData,
minLength: 1,
delay: 0,
onSelect: function (e, item, $this) {
$this.val(item.value);
}
});
})
.execute();
}
});
$activityTypeId.trigger("change");
return this;
},
getListCommesseAperteCliente: function (codAnag, tipoAnag, codVdes) {
var d = $.Deferred();
var data = {codAnag: codAnag, tipoAnag: tipoAnag};
if (!is_undefined(codVdes)) {
data.codVdes = codVdes;
}
var ajax = new Ajax();
ajax.get("getListCommesseAperteCliente").noticeAsModal().promise(d).data(data).execute();
return d.promise();
}
};

View File

@@ -1,171 +0,0 @@
$(function () {
});
var _formDest = {
newDest: true,
init: function () {
var self = this;
$(".radio_btn[data-action='dest-nuovo'], .radio_btn[data-action='dest-esistente'], .radio_btn[data-action='dest-no']")
.btn_radio()
.on("click", function () {
_contattiCommesse.formDest.toggle($(this).attr("data-action"));
});
var $destinatari = $("select#codVdes");
$destinatari.selectpicker({liveSearch: true, showSubtext: true, size: 10, dropupAuto: false});
$destinatari.on("changed.bs.select", function (e) {
self.fill();
});
var $formDest = $("#form-destinazione");
$formDest.find("select[name='cod_vzon']").selectpicker({
liveSearch: true,
size: 10,
noneSelectedText: "NON SELEZIONATA"
});
},
toggle: function (action) {
var $form = $("#form-destinazione");
let self = this;
$form.find("input, select").val("");
/*if (action === "dest-esistente") {
} else */
if (action === "dest-nuovo") {
self.newDest = true;
$("#codVdes").selectpicker("val", "");
$form.find("input, select").readonly(false);
$form.find("select").disabled(false);
$form.find("select[name='nazione']").val("IT");
var ragSoc = $("#form-cliente").find("input[name='rag_soc']").getValue();
if (ragSoc != null) {
$form.find("input[name='rag_soc']").val(ragSoc);
$form.find("input[name='indirizzo']").focus();
}
} else if (action === "dest-no") {
self.newDest = false;
$("#codVdes").selectpicker("val", null);
$form.find("input, select").readonly();
$form.find("select").disabled();
}
$form.find("select[name='cod_vzon']").selectpicker("refresh");
},
arr_destinazioni: [],
reset: function () {
var self = this;
self.arr_destinazioni = [];
self.refresh();
return self;
},
fill: function () {
var self = this;
var $form = $("#form-destinazione");
var codVdes = $("#codVdes").getValue();
if (codVdes != null) {
$form.find("input").val("");
$form.find("input, select").readonly(false);
$form.find("select").disabled(false);
$form.find("select[name='cod_vzon']").selectpicker("refresh");
if ($(".radio_btn[data-action='dest-esistente']").hasClass("disabled")) {
$(".radio_btn[data-action='dest-esistente']").trigger("click");
}
var arr_destinazioni = self.get_destinazioni();
var result = Enumerable.From(arr_destinazioni)
.Where(function (x) {
return x.cod_vdes == codVdes;
})
.ToArray();
if (result.length > 0) {
var destData = result[0];
$.each(destData, function (key, value) {
var $input = $form.find("input[name='" + key + "'], select[name='" + key + "']");
if ($input.exists()) {
$input.val(value).blur();
} else {
console.warn("input[name='" + key + "'] non trovato nel form");
}
});
}
} else {
if ($(".radio_btn[data-action='dest-no']").hasClass("disabled") && !self.newDest) {
$(".radio_btn[data-action='dest-no']").trigger("click");
}
}
},
refresh: function () {
var self = this;
var $form = $("#form-destinazione");
$form.find("input").val("");
var $destinazioni = $("#codVdes");
$destinazioni.html("<option value=''>Seleziona una commessa</option>");
$destinazioni.html("<option value=''>Non selezionata / Nuova</option>");
var $rowControlsListDest = $(".radio_btn[data-action='dest-esistente'], button[data-id='codVdes']");
var $rowControlsDest = $(".radio_btn[data-action='dest-esistente']").closest(".row");
$rowControlsDest.show();
$(".radio_btn[data-action='dest-no']").trigger("click");
var arr_destinazioni = self.get_destinazioni();
if (arr_destinazioni.length > 0) {
$rowControlsListDest.show();
for (var i = 0; i < arr_destinazioni.length; i++) {
var item = arr_destinazioni[i];
$destinazioni.append("<option value='" + item.cod_vdes + "' data-subtext='" + blankIfNull(item.indirizzo) + " " + blankIfNull(item.citta) + "'>" + item.cod_vdes + " - " + item.rag_soc + "</option>");
}
// PRIMO DESTINATARIO AS DEFAULT
//$destinazioni.val(arr_destinazioni[0].cod_vdes).trigger("change");
} else {
$rowControlsListDest.hide();
}
$destinazioni.selectpicker("refresh");
},
check: function () {
var destData = _checkForm.checkData($("#form-destinazione"));
if (destData !== false) {
destData.cod_vdes = $("#codVdes").getValue();
return {returnId: 1, returnData: destData};
} else {
return {returnId: -1, errorText: "Compila tutti i dati richiesti per la destinazione"};
}
},
get_destinazioni: function () {
return this.arr_destinazioni;
},
update: function (tipoAnag, codAnag) {
var self = this;
var d = $.Deferred();
self.arr_destinazioni = [];
var ajax = new Ajax();
ajax.get("get_destinazioniClie")
.data({tipoAnag: tipoAnag, codAnag: codAnag})
.noticeAsToast()
.deferred(d)
.onSuccess(function (ret) {
self.arr_destinazioni = ret.returnData;
})
.execute();
return d;
}
};

View File

@@ -1,331 +0,0 @@
let _panelFilter = {
init: function () {
let d = $.Deferred();
_contattiCommesse.filter = new UrlFilter();
let filterList = [];
$("#bt_fltCancel").on("click", function () {
$(this).btn_setWaitStatus();
_contattiCommesse.filter.cancel();
});
$("#bt_fltApply").on("click", function () {
$(this).btn_setWaitStatus();
_contattiCommesse.filter.apply();
});
let datepickerOpt = {changeMonth: true, changeYear: true, numberOfMonths: isMobile() ? 1 : 2};
let $assegnatoA = $("#flt-assegnatoA");
if ($assegnatoA.exists()) {
$assegnatoA.on("change", function () {
_contattiCommesse.filter.add("assegnatoA[]", $(this).getValue());
});
_contattiCommesse.filter.pushType("assegnatoA[]");
filterList.push("assegnatoA");
}
let $uc = $("#flt-uc");
if ($uc.exists()) {
$uc.on("change", function () {
_contattiCommesse.filter.add("uc", $(this).getValue());
});
_contattiCommesse.filter.pushType("uc");
filterList.push("uc");
}
let $tipoAttivita = $("#flt-tipoAttivita");
if ($tipoAttivita.exists()) {
$tipoAttivita.on("change", function () {
let value = $(this).getValue();
_contattiCommesse.filter.add("tipoAttivita[]", value);
});
_contattiCommesse.filter.pushType("tipoAttivita[]");
filterList.push("tipoAttivita");
}
let $stato = $("#flt-stato");
if ($stato.exists()) {
$stato.on("change", function () {
_contattiCommesse.filter.add("stato", $(this).getValue());
});
_contattiCommesse.filter.pushType("stato");
filterList.push("stato");
}
let $tecnico = $("#flt-tecnico");
if ($tecnico.exists()) {
$tecnico.on("change", function () {
_contattiCommesse.filter.add("tecnico[]", $(this).getValue());
});
_contattiCommesse.filter.pushType("tecnico[]");
filterList.push("tecnico");
}
let $dataDa = $("#flt-dataDa");
if ($dataDa.exists()) {
$dataDa.on("change", function () {
let value = $(this).getTimestampValue();
_contattiCommesse.filter.add("d1", value);
});
$dataDa.val(get_dateUrlParameter("d1"));
_contattiCommesse.filter.pushType("d1");
filterList.push("dataRange");
}
let $dataA = $("#flt-dataA");
if ($dataA.exists()) {
$dataA.on("change", function () {
let value = $(this).getTimestampValue();
_contattiCommesse.filter.add("d2", value);
});
_contattiCommesse.filter.pushType("d2");
$dataA.val(get_dateUrlParameter("d2"));
filterList.push("dataRange");
}
if ($dataDa.exists() && $dataA.exists()) {
$dataDa.datepickerInterval($dataA, datepickerOpt);
}
let $dataAttivita = $("#flt-dataAttivita");
if ($dataAttivita.exists()) {
$dataAttivita
.datepicker(datepickerOpt)
.on("change", function () {
let value = $(this).getTimestampValue();
_contattiCommesse.filter.add("d", value).apply();
});
_contattiCommesse.filter.pushType("d");
$dataAttivita.val(get_dateUrlParameter("d"));
filterList.push("dataAttivita");
}
let $dataIns = $("#flt-dataIns");
if ($dataIns.exists()) {
$dataIns
.datepicker(datepickerOpt)
.on("change", function () {
let value = $(this).getTimestampValue();
_contattiCommesse.filter.add("di", value).apply();
});
_contattiCommesse.filter.pushType("di");
$dataIns.val(get_dateUrlParameter("di"));
filterList.push("dataIns");
}
let $desc = $("#flt-desc");
if ($desc.exists()) {
$desc.on("change", function () {
_contattiCommesse.filter.add("desc", $(this).getValue());
});
_contattiCommesse.filter.pushType("desc");
$desc.val(get_urlParameter("desc"));
}
let $activityResult = $("#flt-activityResult");
if ($activityResult.exists()) {
$activityResult.on("change", function () {
_contattiCommesse.filter.add("resultAtt", $(this).getValue());
});
_contattiCommesse.filter.pushType("resultAtt");
$activityResult.val(get_urlParameter("resultAtt"));
filterList.push("resultAtt");
}
let $activityDescription = $("#flt-activityDescription");
if ($activityDescription.exists()) {
$activityDescription.on("change", function () {
_contattiCommesse.filter.add("descrAtt", $(this).getValue());
});
_contattiCommesse.filter.pushType("descrAtt");
$activityDescription.val(get_urlParameter("descrAtt"));
filterList.push("descrAtt");
}
let $clieComm = $("#flt-clieComm");
if ($clieComm.exists()) {
$clieComm.bsautocomplete({
sourceAjaxAction: "src_clienteCommessa",
ajaxData: {flagCommesse: 1},
item_labelKey: "rag_soc",
item_labelSubKey: "cod_anag",
onSelect: function (e, itemData, $this) {
$this.val(itemData.rag_soc).focus();
if ("cod_jcom" in itemData) {
_contattiCommesse.filter.add("com", itemData.cod_jcom);
} else {
_contattiCommesse.filter.add("anag", itemData.tipo_anag + itemData.cod_anag);
}
// RESETTO ALTRI FILTRI CONTRASTANTI DAI RISULTATI DELLA RICERCA
if ($dataDa.exists()) {
$dataDa.val("").trigger("change");
}
if ($dataA.exists()) {
$dataA.val("").trigger("change");
}
if ($stato.exists()) {
$stato.selectOption(0).trigger("change"); // TUTTI
}
if ($assegnatoA.exists()) {
$assegnatoA.selectOption(0).trigger("change"); // TUTTI
}
}
}).on("change", function () {
if ($(this).valueIsEmpty()) {
_contattiCommesse.filter.rm("anag");
_contattiCommesse.filter.rm("com");
}
}).on("enterKey", function () {
_contattiCommesse.filter.apply();
});
_contattiCommesse.filter.pushType("anag")
.pushType("com");
}
let $flagNewActivities = $("#flag_newActivities");
if ($flagNewActivities.exists()) {
$flagNewActivities.parent().btn_checkbox();
$flagNewActivities.on("change", function () {
let value = $(this).getBooleanValue() ? "1" : null;
_contattiCommesse.filter.add("na", value);
});
_contattiCommesse.filter.pushType("na");
}
let $flagAttivitaNonEvase = $("#flag_attivitaNonEvase");
if ($flagAttivitaNonEvase.exists()) {
$flagAttivitaNonEvase.parent().btn_checkbox();
$flagAttivitaNonEvase.on("change", function () {
let value = $(this).getBooleanValue() ? "1" : null;
_contattiCommesse.filter.add("ne", value);
});
_contattiCommesse.filter.pushType("ne");
}
let module = _contattiCommesse.module;
module.loadDataSourceOption("filterData", {filters: filterList})
.done(function () {
let filterData = module.get_dataSource("filterData");
if (filterList.indexOf("assegnatoA") >= 0 && "assegnatoA" in filterData) {
let mappedData = filterData.assegnatoA.map(function (item) {
item.id = item.user_name;
item.text = item.full_name;
return item;
});
$assegnatoA.select2({
data: mappedData,
width: "100%",
closeOnSelect: false
});
let defaultValue = filterData.assegnatoA.filter(item => item.isDefault);
if (defaultValue && Array.isArray(defaultValue) && defaultValue.length > 0) {
defaultValue = defaultValue[0].user_name;
}
let assegnatoA = isset_urlParameter("assegnatoA") ? get_urlParameter("assegnatoA[]") : defaultValue;
$assegnatoA.val(assegnatoA);
$assegnatoA.trigger("change");
}
if (filterList.indexOf("tecnico") >= 0 && "tecnico" in filterData) {
let mappedData = filterData.tecnico.map(function (item) {
item.id = item.user_name;
item.text = item.full_name;
return item;
});
$tecnico.select2({
data: mappedData,
width: "100%",
closeOnSelect: false
});
let tecnico = isset_urlParameter("tecnico") ? get_urlParameter("tecnico[]") : "";
$tecnico.val(tecnico);
$tecnico.trigger("change");
}
if (filterList.indexOf("uc") >= 0 && "uc" in filterData) {
let listUc = filterData.uc;
$uc.html("<option value=''></option>");
listUc.forEach(function (uc) {
$uc.append("<option value='" + uc + "'>" + uc + "</option>");
});
$uc.val(get_urlParameter("uc"));
}
if (filterList.indexOf("stato") >= 0 && "stato" in filterData) {
let listStato = filterData.stato;
let defaultValue = null;
listStato.forEach(function (item) {
defaultValue = item.isDefault ? item.stato_commessa : defaultValue;
let title = !is_undefined(item.title) ? item.title : item.stato_commessa;
$stato.append("<option value='" + item.stato_commessa + "' " + (!item.isEnabled ? "disabled" : "") + " >" + title + "</option>");
});
let statoSelected = isset_urlParameter("stato") ? get_urlParameter("stato") : defaultValue;
$stato.val(statoSelected);
}
if (filterList.indexOf("tipoAttivita") >= 0 && "tipoAttivita" in filterData) {
const listTipoAttivita = filterData.tipoAttivita.map(function (item) {
item.id = item;
item.text = item;
return item;
});
$tipoAttivita.select2({
data: listTipoAttivita,
width: "100%",
closeOnSelect: false
});
$tipoAttivita.val(get_urlParameter("tipoAttivita[]"));
$tipoAttivita.trigger("change");
}
if (filterList.indexOf("dataAttivita") >= 0 && "dataAttivita" in filterData) {
let availableDays = _.map(filterData.dataAttivita, function (date) {
return (_.isString(date) ? moment(date).unix() : date)
});
if (!_.isEmpty(availableDays)) {
$dataAttivita.setAvailableValuesDatepicker(availableDays);
}
}
if (filterList.indexOf("dataIns") >= 0 && "dataIns" in filterData) {
let availableDaysDataIns = _.map(filterData.dataIns, function (date) {
return (_.isString(date) ? moment(date).unix() : date)
});
if (!_.isEmpty(availableDaysDataIns)) {
$dataIns.setAvailableValuesDatepicker(availableDaysDataIns);
}
}
if (filterList.indexOf("dataRange") >= 0 && "dataRange" in filterData) {
let dataRange = filterData.dataRange;
if (!is_null(dataRange)) {
$dataDa.datepicker("option", "minDate", dataRange.min.timeToDate());
$dataA.datepicker("option", "maxDate", dataRange.max.timeToDate());
}
}
d.resolve();
})
.fail(function () {
d.reject();
});
return d.promise();
}
};

View File

@@ -1,106 +0,0 @@
$(function () {
$(document).on("click", ".edit_activity", function () {
var $tr = $(this).closest("[data-row_attivita]");
new PopupFormAttivita()
.attivita($tr.getDataAttr("row_attivita"))
.onSave(function (ret) {
var $newTr = $(atob(ret.returnString));
$tr.html($newTr.html()).attr("data-row_attivita", $newTr.attr("data-row_attivita"));
})
.onDelete(function () {
$tr.remove();
})
.page("list-attivita")
.open();
});
$(document).on("click", ".delete_activity", function () {
var $bt = $(this);
var $tr = $bt.closest("[data-row_attivita]");
var attivita = $tr.getDataAttr("row_attivita");
_contattiCommesse.activity.delete(attivita, $bt).done(function () {
$tr.remove();
});
});
$(document).on("click", "#bt_newIntActivity", function (e) {
e.preventDefault();
new PopupFormAttivita()
.attivita(null)
.onSave(function () {
_APP.location.reload("L'attività è stata creata");
})
.page("list-attivita")
.open();
return false;
});
$(document).on("click", "#list-commesse .bt_viewFiles", function () {
var $bt = $(this);
var $tr = $bt.closest("[data-activity_id]");
var activityId = $tr.getDataAttr("activity_id");
if (_allegati.isLoaded()) {
new ModalAllegati()
.activityId(activityId)
.sourceTypes([_allegati.sourceTypes.ATTIVITA])
.allowUpload([_allegati.sourceTypes.ATTIVITA])
.allowDelete([_allegati.sourceTypes.ATTIVITA])
.editableDescription([_allegati.sourceTypes.ATTIVITA])
.$button($bt)
.onChange(function () {
var $tbody = $("#m_tbAllegati").children("tbody");
var c = $tbody.children().length;
$("tr[data-activity_id='" + activityId + "'] .bt_viewFiles > .badge").bs_element_setStyle(c > 0 ? "primary" : "default").text(c);
})
.open();
}
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
activity: null,
init: function () {
var self = this;
var check_btFilterNewActivities = function () {
var $checkNewActivities = $("#flag_newActivities");
var $btNewActivities = $checkNewActivities.parent();
if ([null, "*", _USER.username].indexOf($("#flt-username").getValue()) >= 0) {
$btNewActivities.btn_checkbox("enable");
} else {
$checkNewActivities.prop("checked", false);
$btNewActivities.btn_checkbox("refresh");
$btNewActivities.btn_checkbox("disable");
}
};
self.module = new Module();
self.module.onLoad(function () {
_panelFilter.init();
$("#flt-assegnatoA").on("change", function () {
check_btFilterNewActivities();
});
if (isMobile()) {
$("#panel-filter").addClass("collapsed");
}
check_btFilterNewActivities();
}).load();
}
};
_APP.set_txtTitleBar("Attivit&agrave;");

View File

@@ -1,103 +0,0 @@
$(function () {
$(document).on("change", "select#go-commessa", function () {
var $this = $(this);
var codJcom = $this.getValue();
if (!is_null(codJcom)) {
if (codJcom == "[NEW]") {
var $tr = $this.closest("tr");
var codAnag = $tr.getDataAttr("cod_anag");
var tipoAnag = $tr.getDataAttr("tipo_anag");
_APP.location.href("?new&anag=" + tipoAnag + codAnag);
} else {
_APP.location.href("?view=" + codJcom);
}
}
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
activity: null,
init: function () {
var self = this;
self.module = new Module();
self.module.onLoad(function () {
var $fltClie = $("#flt-clie");
$fltClie.bsautocomplete({
sourceAjaxAction: "src_clienteCommessa",
item_labelKey: ["rag_soc", "rag_soc2"],
item_labelSmallKey: "descr_tipo",
item_labelSubKey: ["indirizzo", "citta", "prov"],
onSelect: function (e, cliente, $this) {
$this.val("").blur();
_contattiCommesse.set_result(cliente);
}
}).select();
$("table#list-clie").hide();
}).load();
},
is_agente: function () {
return _USER.is_agente();
},
set_result: function (cliente) {
var self = this;
var userName = _USER.username;
var $table = $("table#list-clie");
$table.hide();
var $tbody = $table.children("tbody");
$tbody.html("");
if (!is_null(cliente)) {
_common.getListCommesseAperteCliente(cliente.cod_anag, cliente.tipo_anag).done(function (ret) {
var arr_commesse = ret.returnData;
var tr = "<tr data-cod_anag='" + cliente.cod_anag + "' data-tipo_anag='" + cliente.tipo_anag + "'>";
tr += "<td class='vertical-middle'>" + cliente.rag_soc + " " + blankIfNull(cliente.rag_soc2) + "</td>";
tr += "<td class='vertical-middle'>" +
cliente.indirizzo + "<br/>" +
blankIfNull(cliente.cap) + " " +
blankIfNull(cliente.citta) + " " +
blankIfNull(cliente.prov) +
"</td>";
tr += "<td class='vertical-middle text-center'>" + (!is_null(cliente.telefono) ? cliente.telefono : "") + "</td>";
tr += "<td class='vertical-middle text-center'>" + (!is_null(cliente.e_mail) ? cliente.e_mail : "") + "</td>";
tr += "<td class='vertical-middle'>";
tr += "<select id='go-commessa' class='form-control input-xs margin-left-right-auto'>";
tr += "<option value=''></option>";
//tr += "<option value=''>"+pluralize(arr_commesse.length, "UNA COMMESSA APERTA", "[N] COMMESSE APERTE", "")+"</option>";
for (var i = 0; i < arr_commesse.length; i++) {
var commessa = arr_commesse[i];
var dataIns = commessa.ora_ins_act.unixtime_format("DD/MM/YYYY");
var isDisabled = false;
// var isDisabled = (self.is_agente() || _USER.is_tecnico()) && !([commessa.user_name, commessa.user_name_agen, commessa.user_name_lav].indexOf(userName)>=0);
tr += "<option value='" + commessa.cod_jcom + "' data-subtext='del " + dataIns + "' " + (isDisabled ? "disabled" : "") + ">" + commessa.cod_jcom + " " + commessa.descrizione + "</option>";
}
tr += "<option value='[NEW]'>Crea nuova</option>";
tr += "</select>";
tr += "</td>";
tr += "<td class='vertical-middle'>";
tr += "<button type='button' class='btn btn-xs btn-default bt_openDetClie' data-cod_anag='" + cliente.cod_anag + "' data-tipo_anag='" + cliente.tipo_anag + "' data-cod_vdes=''>\n\
<i class='fa fa-user-circle text-info'></i> <span class='text-info'>Dettagli</span>\n\
</button>";
tr += "</td>";
tr += "</tr>";
$tbody.append($(tr));
$table.show();
});
} else {
var toast = new Toast();
toast.warning("Dati cliente non validi");
}
}
};

View File

@@ -1,87 +0,0 @@
$(function () {
$(document).on("click", "#bt_newIntActivity", function (e) {
e.preventDefault();
new PopupFormAttivita()
.attivita(null)
.onSave(function () {
_APP.location.reload();
})
.page("list-commesse")
.open();
return false;
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
activity: null,
filter: null,
init: function () {
var self = this;
self.module = new Module();
self.module.onLoad(function () {
_panelFilter.init();
}).load();
$("#list-commesse tr[data-cod_jcom]").on("click", function (e) {
if (!$(e.target).is_button()) {
var codJcom = $(this).getDataAttr("cod_jcom");
_APP.location.href("?view=" + codJcom, false);
}
});
$("button[data-delete_commessa]").on("click", function (e) {
e.stopPropagation();
var $tr = $(this).closest("tr");
var codJcom = $(this).getDataAttr("delete_commessa");
new Ajax()
.post("delete_commessa")
.data({codJcom: codJcom})
.confirmModal({
message: "Confermare l'eliminazione della commessa <b>" + codJcom + "</b> e delle relative attivit&agrave;?",
style: "warning"
})
.noticeAsModal()
.onSuccess({
toast: {message: "Commessa eliminata con successo", timeout: 1},
callback: function () {
$tr.remove();
}
}).execute();
});
$("button[data-files_commessa]").on("click", function (e) {
e.stopPropagation();
var $bt = $(this);
if (_allegati.isLoaded()) {
new ModalAllegati()
.codJcom($bt.getDataAttr("files_commessa"))
.onlyCurrentUser()
.depth(-1)
.sourceTypes([_allegati.sourceTypes.COMMESSA, _allegati.sourceTypes.ATTIVITA, _allegati.sourceTypes.ORDCOM, _allegati.sourceTypes.DOCCOM, _allegati.sourceTypes.DOCPDF])
.allowUpload([_allegati.sourceTypes.COMMESSA])
.allowDelete([_allegati.sourceTypes.COMMESSA])
.editableDescription([_allegati.sourceTypes.COMMESSA])
.$button($bt)
.onChange(function (c) {
$bt.find(".badge").bs_element_setStyle(c > 0 ? "primary" : "default").text(c);
})
.open();
}
});
_APP.stopModalLoader();
}
};
_APP.startModalLoader();

View File

@@ -1,234 +0,0 @@
$(function () {
$(document).on("click", "#bt_newIntActivity", function (e) {
e.preventDefault();
new PopupFormAttivita()
.attivita(null)
.onSave(function (ret) {
_contattiCommesse.buildAttivitaPlanner(ret.returnData, true);
})
.page("planner")
.open();
return false;
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
filter: null,
modalBoxLoader: null,
planner: null,
activity: null,
init: function () {
var self = this;
self.module = new Module();
self.module.onLoad(function () {
_panelFilter.init().always(function () {
_contattiCommesse.plannerUtils.initFiltroAssegnatoA();
if (self.buildPlanner()) {
self.refreshPlannerItems();
}
});
}).load();
},
refreshPlannerItems: function () {
var self = this;
var $plannerSelector = $("#monthchooser");
$plannerSelector.monthPicker("disable");
self.loadActivityItems().then(function () {
self.planner.initDroppables();
$plannerSelector.monthPicker("enable");
});
},
buildPlanner: function () {
var self = this;
self.planner = new Planner();
self.planner
.$container($("#planner"))
.monthPicker({
$item: $("#monthchooser"),
queryStringParameter: "ym",
onChange: _.bind(self.refreshPlannerItems, self)
})
.showWeek()
.noWorkingWeekDay(7)
.onMoveItem(function ($item, from, to) {
var attivita = $item.getDataAttr("row_attivita");
var $tdFrom = self.planner.getDayCell(from);
var $tdTo = self.planner.getDayCell(to);
return _contattiCommesse.plannerUtils.moveAttivita(attivita, to)
.done(function (ret) {
$item.attr("data-row_attivita", _ojbc.B64JSON_stringify(ret.returnData));
self.sortActivityDay($tdTo);
})
.fail(function () {
self.sortActivityDay($tdFrom);
});
})
.limitDroppables(function (day) {
return daysDiffFromToday(day) >= 0;
})
.onDayTaphold(function (day) {
_contattiCommesse.plannerUtils.onDayTaphold(day);
})
.onDayClick(function (day) {
_APP.location.href("?attivita&d=" + day);
});
return self.planner.build();
},
buildAttivitaPlanner: function (arr_attivita, highlight) {
var self = this;
for (var i = 0; i < arr_attivita.length; i++) {
self._appendAttivitaPlanner(arr_attivita[i], highlight);
}
return self;
},
_appendAttivitaPlanner: function (attivita, highlight) {
var self = this;
var $plannerItem = _contattiCommesse.plannerUtils.buildPlannerItem(attivita);
self.planner.append($plannerItem, attivita.data_inizio);
if (highlight) {
$plannerItem.highlightRow();
}
},
buildAttivitaGiorno: function (arr_attivitaGiorno) {
var self = this;
if (arr_attivitaGiorno.length > 0) {
var day = arr_attivitaGiorno[0].data_inizio;
var $day = self.planner.$planner.find("td[data-bc-planner_day='" + day + "']");
var $b = $day.find(".csscircle").find("b");
$b.html("<a href='?attivita&d=" + day + "'>" + $b.text() + "</a>");
arr_attivitaGiorno = Enumerable.From(arr_attivitaGiorno).OrderBy(function (x) {
return x.data_inizio;
}).ToArray();
self.buildAttivitaPlanner(arr_attivitaGiorno, false);
}
},
loadActivityItems: function () {
var self = this;
var d = $.Deferred();
var filter = self.filter.get_filter();
self.planner.cleanItems();
var days = self.planner.getDayListCurrentView();
if (days.length > 0) {
var limitDays = self.planner.getLimitDays();
_contattiCommesse.plannerUtils.getGiorniUtili(limitDays, filter).done(function (ret) {
var arr_usefulDaysAttivita = ret.returnData.attivita;
if (arr_usefulDaysAttivita.length > 0) {
var toastProgress = new Toast();
toastProgress.progress().show("", "Caricamento attivit&agrave;");
var countAct = 0;
async.eachSeries(days, function (day, done) {
var index = days.indexOf(day);
var dateFormatted = day.unixtime_format("D") + " " + ucfirst(getMonthName(day.unixtime_format("M"))) + " " + day.unixtime_format("YYYY");
toastProgress.progressTime(index, days.length - 1, dateFormatted, "Caricamento attivit&agrave;");
if (arr_usefulDaysAttivita.indexOf(day) >= 0) {
new Ajax()
.get("getListAttivitaGiorno")
.data({day: day, filter: filter})
.onSuccess(function (ret) {
if ((filter.anag || filter.com) && ret.returnData.length > 0) {
$("#flt-clieComm").val(ret.returnData[0].descr_commessa);
}
self.buildAttivitaGiorno(ret.returnData);
countAct += ret.returnData.length;
})
.onAlways(function () {
done();
})
.execute();
} else {
setTimeout(function () {
done();
}, 20);
}
}, function () {
toastProgress.remove(500);
d.resolve();
});
} else {
d.resolve();
}
var arr_usefulDaysRapportini = ret.returnData.rapportini;
self.planner.getDaysCells().each(function () {
self.initBtViewRapportiniUtente($(this), arr_usefulDaysRapportini);
});
}).fail(function () {
d.resolve();
});
} else {
d.resolve();
}
return d;
},
initBtViewRapportiniUtente: function ($day, listGiorniUtili) {
var self = this;
var day = self.planner.getTimeCell($day);
$day.find(".fa-id-card").remove();
var $i = $("<i>", {
class: "fa fa-id-card pull-right pt-4 pr-4 cursor-pointer",
title: "Consulta i rapportini della giornata"
});
if (listGiorniUtili.indexOf(day) >= 0) {
$i.on("click", function () {
_contattiCommesse.plannerUtils.showModalRapportini(day);
});
}// else {
// $i.disableAll().attr("title", "Nessun rapportino caricato nella giornata");
// if (self.planner.isNotWorkingDayCell($day)) {
// $i.addClass("hidden");
// }
// }
$i.insertAfter(self.planner.getDayNumberHeader(day));
//$day.find(".bc-planner_day-header").append($i);
return self;
},
sortActivityDay: function ($day) {
var $sortedDivs = $day.children("[data-bc-planner_item]").toArray().sort(function (a, b) {
return $(a).getDataAttr("time") - $(b).getDataAttr("time");
});
$.each($sortedDivs, function (i, $attivita) {
$day.append($attivita);
});
}
};

View File

@@ -1,239 +0,0 @@
$(function () {
_contattiCommesse.init();
$(document).on("click", "#bt_newIntActivity", function (e) {
e.preventDefault();
new PopupFormAttivita()
.attivita(null)
.onSave(function (ret) {
const calendar = _contattiCommesse.calendar;
calendar.refetchEvents()
})
.page("planner")
.open();
return false;
});
});
let _contattiCommesse = {
module: null,
filter: null,
calendar: null,
init: function () {
let self = this;
self.module = new Module();
self.module.onLoad(function () {
_panelFilter.init().always(function () {
_contattiCommesse.plannerUtils.initFiltroAssegnatoA();
self.loadCalendar();
});
}).load();
},
loadCalendar: function () {
let self = this;
let filter = (self.filter) ? self.filter.get_filter() : "";
let calendarEl = document.getElementById("calendar");
let calendar = new FullCalendar.Calendar(calendarEl, {
locale: "it",
initialView: "dayGridMonth",
headerToolbar: {
start: "prev,today,next",
center: "title",
end: "dayGridMonth,dayGridWeek,timeGridWeek,listWeek"
},
buttonText: {
dayGridMonth: isMobile() ? "M" : "Mese",
dayGridWeek: isMobile() ? "W" : "Settim",
timeGridWeek: isMobile() ? "H/W" : "Ore/Sett.",
listWeek: isMobile() ? "D" : "Agenda",
},
eventSources: [
{
events: function (info, successCallback, failureCallback) {
return new Promise(function (resolve) {
let data = {
info: info,
filter: filter
};
new Ajax()
.get("getListFullCalendar")
.noticeAsModal()
.data(data)
.onSuccess(function (ret) {
resolve(ret.returnData);
})
.execute();
});
},
textColor: "black"
},
],
editable: true,
slotEventOverlap: true,
dayMaxEventRows: true,
showNonCurrentDates: false,
views: {
timeGrid: {
dayMaxEventRows: 6,
eventMaxStack: 1,
nowIndicator: true,
scrollTime: "07:00:00",
aspectRatio: isMobile() ? 0.4 : 2.2,
slotLabelFormat: {
hour: "2-digit",
minute: "2-digit",
omitZeroMinute: true
},
}
},
datesSet: function () {
self.iconInizializer();
},
dayCellContent: function (info) {
if (info.view.type === "dayGridMonth") {
let myDate = new Date(info.date.toISOString());
let day = myDate.getTime() / 1000;
const $button = $("<span>", {
class: "preventDateClick showModalRapportini"
}).append($("<i class='fcEventButton fa fa-id-card preventDateClick' style='font-size: 16px; vertical-align: middle;' data-day='" + day + "'></i>"));
const $number = $("<span>", {
class: "fc-daygrid-day-number",
text: info.dayNumberText,
});
return {
html: $number.outerHtml() + $button.outerHtml()
};
}
return null;
},
dayHeaderContent: function (info) {
const array = ["dayGridWeek", "timeGridWeek"];
if (array.includes(info.view.type)) {
let myDate = new Date(info.date.toISOString());
let day = myDate.getTime() / 1000;
const $button = $("<span>", {
class: "showModalRapportini"
}).append($("<i class='fcEventButton fa fa-id-card' style='font-size: 16px; vertical-align: middle;' data-day='" + day + "'></i>"));
const $number = $("<span>", {
class: "pull-left",
text: info.text,
});
return {
html: $number.outerHtml() + $button.outerHtml()
};
} else if (info.view.type === "listWeek") {
let myDate = new Date(info.date.toISOString());
let day = myDate.getTime() / 1000;
const $button = $("<span>", {
class: "showModalRapportini"
}).append($("<i class='fcEventButton fa fa-id-card' style='font-size: 16px; vertical-align: middle;' data-day='" + day + "'></i>"));
const $number = $("<span>", {
class: "pull-left",
text: info.text,
});
const $sideText = $("<span>", {
class: "pull-right",
text: info.sideText,
});
return {
html: $number.outerHtml() + $button.outerHtml() + $sideText.outerHtml()
};
}
},
eventContent: function (eventInfo) {
return {
html: eventInfo.event.extendedProps.customHtml,
color: eventInfo.event.extendedProps.styleStatoBG
};
},
dateClick: function (info) {
let target = info.jsEvent.target;
if (!($(target).hasClass("preventDateClick"))) {
let myDate = new Date(info.date.toISOString());
let day = myDate.getTime() / 1000;
if (!is_null(day) && day >= getToday()) {
new PopupFormAttivita()
.attivita({date: day})
.onSave(function (ret) {
calendar.refetchEvents()
})
.page("planner")
.open();
} else {
new Toast().warning("Non &egrave; possibile creare nuove attivit&agrave; in data <b>" + day.unixtime_format("DD/MM/YYYY") + "</b>");
}
}
},
eventClick: function (info) {
new PopupFormAttivita()
.attivita(info.event.extendedProps.rowAttivita)
.onSave(function (ret) {
calendar.refetchEvents()
})
.onDelete(function () {
info.el.remove();
})
.page("planner")
.open();
},
eventDidMount: function (info) {
self.iconInizializer();
new Tooltip(info.el, {
title: info.event.extendedProps.content,
container: "body",
trigger: isMobile() ? "manual" : "hover",
placement: "top",
html: true
});
},
eventDrop: function (info) {
let myDate = new Date(info.event.start.toISOString());
let day = myDate.getTime() / 1000;
if (daysDiffFromToday(day) >= 0) {
new Ajax()
.post("moveAttivita")
.data({attivita: info.event.extendedProps.rowAttivita, day: day})
.noticeAsToast()
.execute();
}
},
eventConstraint: {
start: moment().format("YYYY-MM-DD"),
}
});
_contattiCommesse.calendar = calendar;
calendar.render();
},
iconInizializer: function () {
$(".showModalRapportini").off("click").on("click", function (e) {
const day = $(this).children().getDataAttr("day");
_contattiCommesse.plannerUtils.showModalRapportini(day);
});
}
};

View File

@@ -1,164 +0,0 @@
$(function () {
$(document).on("click mousedown mouseup", "[data-row_attivita]", function (e) {
e.stopPropagation();
if (e.type !== "click") {
let $alert = $(this).closest("[data-row_attivita]");
_contattiCommesse.plannerUtils.mouseEventOnAttivita.tick(e.type, $alert);
}
});
});
_contattiCommesse.plannerUtils = {
buildPlannerItem: function (attivita) {
let time = parseInt(attivita.data_inizio.unixtime_format("HHmm"));
let faIcon = attivita.is_assignedToUser ? "fas fa-user" : "far fa-user";
let faIconStato = attivita.stato === 1 ? "check-circle" : (attivita.stato === 0 ? "pause-circle" : "times-circle");
let styleStato = attivita.stato === 1 ? "success" : (attivita.stato === 0 ? "warning" : "danger");
let rowData = _ojbc.B64JSON_parse(attivita.rowAttivita);
attivita.cod_anag_clie = rowData.cod_anag_clie;
attivita.tipo_anag_clie = rowData.tipo_anag_clie;
attivita.rag_soc_clie = rowData.rag_soc_clie;
let popover = _contattiCommesse.activity.build_popoverActivity(attivita);
let text = (attivita.is_commessaInterna) ? (attivita.rag_soc_clie ? attivita.rag_soc_clie : attivita.activity_description) : attivita.descr_commessa;
let $plannerItem = $("<div>", {
"data-time": time,
"data-row_attivita": attivita.rowAttivita,
class: "p-2 mb-4 cursor-pointer alert alert-" + attivita.style
})
.append($("<span>", {
class: "text-xs pull-left",
html: "" + attivita.data_inizio.unixtime_format("HH:mm") + ""
}))
.append($("<span>", {
class: "small pull-right",
html: "<small><i class='" + faIcon + "'></i> " + attivita.user_name + "</small>"
}))
.append($("<br/>"))
.append($("<span>", {
class: "small",
html: "<i class='fa fa-" + faIconStato + " text-" + styleStato + "'></i> "
}))
.append($("<span>", {
"data-main_text": btoa(text),
class: "font-weight-bold",
html: shortens_words(text, 10, false, "")
}))
.append($("<span>", {
class: "small hidden-xs",
html: "&nbsp;<small>" + attivita.activity_type_id.substr(0, 3) + "</small>"
}));
$plannerItem.Popover(popover);
return $plannerItem;
},
moveAttivita: function (attivita, day) {
let d = $.Deferred();
if (daysDiffFromToday(day) >= 0) {
new Ajax().post("moveAttivita").data({attivita: attivita, day: day}).promise(d).noticeAsToast().execute();
} else {
d.reject();
}
return d.promise();
},
getGiorniUtili: function (limitDays, filter) {
let d = $.Deferred();
new Ajax()
.get("getGiorniUtiliAttivita")
.data({limitDays: limitDays, filter: filter})
.promise(d)
.noticeAsToast()
.execute();
return d.promise();
},
initFiltroAssegnatoA: function () {
let assegnatoA = $("#flt-assegnatoA").getValue();
if (!is_null(assegnatoA)) {
_contattiCommesse.filter.add("assegnatoA[]", assegnatoA);
_contattiCommesse.filter.refreshUrl();
}
},
showModalRapportini: function (day) {
new Ajax()
.get("popup-rapportiniUtente")
.data({day: day})
.noticeAsToast()
.onSuccess(function (ret) {
new ModalBox()
.content(ret.returnString)
.title("<i class='fa fa-id-card'></i> Rapportini del " + day.unixtime_format("DD/MM/YYYY"))
.gridSize({xs: 12, sm: 11, md: 9})
.closeOnly().primary().show();
}).execute();
},
isValidDay: function (day) {
return !is_null(day) && day >= getToday();
},
onDayTaphold: function (day) {
let self = this;
if (self.isValidDay(day)) {
new PopupFormAttivita()
.attivita({date: day})
.onSave(function (ret) {
_contattiCommesse.buildAttivitaPlanner(ret.returnData, true);
})
.page("planner")
.open();
} else {
new Toast().warning("Non &egrave; possibile creare nuove attivit&agrave; in data <b>" + day.unixtime_format("DD/MM/YYYY") + "</b>");
}
},
mouseEventOnAttivita: {
lastMouseEvent: null,
activityTapHoldTimer: null,
isTapHold: false,
tick: function (eventType, $alert) {
let self = this;
switch (eventType) { // Gestita concorrenza eventi click e taphold
case "mousedown":
if (self.lastMouseEvent !== eventType) { // Controllo per evento lanciato due volte
self.activityTapHoldTimer = setTimeout(function () {
self.isTapHold = true;
if (isMobile()) {
$alert.popover("show");
}
}, 1000);
}
break;
case "mouseup":
clearTimeout(self.activityTapHoldTimer);
if (!self.isTapHold) {
new PopupFormAttivita()
.attivita($alert.getDataAttr("row_attivita"))
.onSave(function (ret) {
$alert.remove();
_contattiCommesse.buildAttivitaPlanner(ret.returnData, true);
})
.onDelete(function () {
$alert.remove();
})
.page("planner")
.open();
}
self.isTapHold = false;
break;
}
self.lastMouseEvent = eventType;
}
}
};

View File

@@ -1,217 +0,0 @@
$(function () {
$(document).on("click", "#bt_newIntActivity", function (e) {
e.preventDefault();
new PopupFormAttivita()
.attivita(null)
.onSave(function (ret) {
_contattiCommesse.buildAttivitaPlanner(ret.returnData, true);
})
.page("planner")
.open();
return false;
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
filter: null,
$planner: null,
init: function () {
var self = this;
self.module = new Module();
self.module.onLoad(function () {
_panelFilter.init();
_contattiCommesse.plannerUtils.initFiltroAssegnatoA();
self.$planner = $("#weeklyPlanner");
var wpOptions = {
$selector: $("#plannerWeekSelector"),
queryStringParameter: "d",
onItemDrag: function ($item, dataPrev, dataNew) {
var attivita = $item.getDataAttr("row_attivita");
return _contattiCommesse.plannerUtils.moveAttivita(attivita, dataNew)
.done(function (ret) {
$item.attr("data-row_attivita", _ojbc.B64JSON_stringify(ret.returnData));
});
},
limitDroppables: function (day) {
return daysDiffFromToday(day) >= 0;
},
onChange: function () {
self.refreshPlannerItems();
},
onDayTaphold: function (day) {
_contattiCommesse.plannerUtils.onDayTaphold(day);
},
onTitleClick: function (day) {
_APP.location.href("?attivita&d=" + day);
}
};
self.$planner.weekPlanner(wpOptions);
self.refreshPlannerItems();
/*
self.isTapHold = false;
_contattiCommesse.plannerUtils.initFiltroAssegnatoA();
self.buildPlanner().then(function(ret){
if(ret){
self.refreshPlannerItems();
}
});*/
}).load();
},
buildAttivitaPlanner: function (arr_attivita, highlight) {
var self = this;
for (var i = 0; i < arr_attivita.length; i++) {
self._appendAttivitaPlanner(arr_attivita[i], highlight);
}
return self;
},
_appendAttivitaPlanner: function (attivita, highlight) {
var self = this;
var $plannerItem = _contattiCommesse.plannerUtils.buildPlannerItem(attivita);
var $planner = self.$planner;
$planner.weekPlanner("makeDraggable", $plannerItem);
/*
$plannerItem.on("click", function(){
var popupFormAttivita = new PopupFormAttivita();
popupFormAttivita
.attivita(_ojbc.B64JSON_parse(attivita.rowAttivita))
.onSave(function(ret){
$plannerItem.remove();
self.buildAttivitaPlanner(ret.returnData, true);
})
.onDelete(function(){ $plannerItem.remove();})
.page("planner")
.open();
});*/
//$plannerItem.hide();
$planner.weekPlanner("appendItem", startOfDay(attivita.data_inizio), $plannerItem);
if (highlight) {
$plannerItem.highlightRow();
}
},
refreshPlannerItems: function () {
var self = this;
var $plannerSelector = $("#plannerWeekSelector");
$plannerSelector.disableAll();
// $plannerSelector.monthPicker("disable");
self.loadActivityItems().then(function () {
//self.planner.initDroppables();
// $plannerSelector.monthPicker("enable");
$plannerSelector.enableAll();
});
},
loadActivityItems: function () {
var self = this;
var d = $.Deferred();
self.$planner.weekPlanner("cleanDaysItems");
self.$planner.weekPlanner("resetHeight");
var filter = self.filter.get_filter();
var limitDays = self.$planner.weekPlanner("getLimitDays");
_contattiCommesse.plannerUtils.getGiorniUtili(limitDays, filter).done(function (ret) {
var arr_usefulDaysAttivita = ret.returnData.attivita;
if (arr_usefulDaysAttivita.length > 0) {
var toastProgress = new Toast();
toastProgress.progress().show("", "Caricamento attivit&agrave;");
var countAct = 0;
async.eachSeries(arr_usefulDaysAttivita, function (day, done) {
var index = arr_usefulDaysAttivita.indexOf(day);
var dateFormatted = day.unixtime_format("D") + " " + ucfirst(getMonthName(day.unixtime_format("M"))) + " " + day.unixtime_format("YYYY");
toastProgress.progressTime(index, arr_usefulDaysAttivita.length - 1, dateFormatted, "Caricamento attivit&agrave;");
var ajax = new Ajax();
ajax.get("getListAttivitaGiorno")
.data({day: day, filter: filter})
.onSuccess(function (ret) {
if ((filter.anag || filter.com) && ret.returnData.length > 0) {
$("#flt-clieComm").val(ret.returnData[0].descr_commessa);
}
self.buildAttivitaGiorno(ret.returnData);
countAct += ret.returnData.length;
})
.execute(function () {
done();
});
}, function () {
self.$planner.weekPlanner("refreshHeight");
toastProgress.remove(500);
d.resolve();
});
} else {
d.resolve();
}
var arr_usefulDaysRapportini = ret.returnData.rapportini;
self.$planner.weekPlanner("getDaysCells").each(function () {
self.initBtViewRapportiniUtente($(this), arr_usefulDaysRapportini);
});
});
return d;
},
initBtViewRapportiniUtente: function ($day, listGiorniUtili) {
var self = this;
var day = $day.getTimeDataAttr("day");
var $i = $("<i>", {class: "fa fa-id-card cursor-pointer", title: "Consulta i rapportini della giornata"});
if (listGiorniUtili.indexOf(day) >= 0) {
$i.on("click", function () {
_contattiCommesse.plannerUtils.showModalRapportini(day);
});
}// else {
// $i.disableAll().attr("title", "Nessun rapportino caricato nella giornata");
/*if(self.planner.isNotWorkingDayCell($day)){
$i.addClass("hidden");
}*/
// }
self.$planner.weekPlanner("get_dayColumnHeader", day).find(".icon-holder").html($i);
return self;
},
getDayListCurrentView: function () {
return this.$planner.weekPlanner("getWeekDates");
},
buildAttivitaGiorno: function (arr_attivitaGiorno) {
var self = this;
if (arr_attivitaGiorno.length > 0) {
arr_attivitaGiorno = Enumerable.From(arr_attivitaGiorno).OrderBy(function (x) {
return x.data_inizio;
}).ToArray();
self.buildAttivitaPlanner(arr_attivitaGiorno, false);
}
}
};

View File

@@ -1,736 +0,0 @@
$(function () {
$("input#src-commessa").bsautocomplete({
sourceAjaxAction: "src_commessa",
item_labelKey: ["descrizione"],
item_labelSubKey: ["subtext"],
onSelect: function (e, itemResult, $this) {
$this.val("").blur();
if (!is_null(itemResult.clie)) {
_contattiCommesse.fill_formCliente(itemResult.clie).then(function () {
if (!is_null(itemResult.cod_vdes)) {
$("#codVdes").val(itemResult.cod_vdes).trigger("change");
$("#codVdes").selectpicker("refresh");
}
$("#listCommesseAperte").attr("data-res_src_commessa", itemResult.cod_jcom);
});
} else {
var toast = new Toast();
toast.warning("La commessa selezionata non è associata a nessun cliente");
}
}
});
$(".radio_btn[data-action='clie-nuovo'], .radio_btn[data-action='clie-esistente']")
.btn_radio()
.on("click", function () {
_contattiCommesse.toggle_formCliente($(this).attr("data-action"));
});
$("#form-cliente").find("input[name='rag_soc']").bsautocomplete({
sourceAjaxAction: "src_clienteCommessa",
item_labelKey: ["rag_soc", "cod_anag"],
item_labelSubKey: ["descr_stato", "indirizzo", "citta", "prov"],
onSelect: function (e, clieData, $this) {
$this.val("").blur();
_contattiCommesse.fill_formCliente(clieData);
}
});
$("#form-cliente input").on("change", function () {
var $input = $(this);
if ($input.hasattr("data-required") && $input.parent().hasClass("has-error") && !is_null($input.getValue())) {
$input.parent().removeClass("has-error");
}
$("#bt_formClieReset").enabled();
});
$("#bt_formClieReset").on("click", function () {
$(".radio_btn[data-action='clie-nuovo']").trigger("click");
});
$("#bt_confCliente").on("click", function () {
_contattiCommesse.convalida_cliente();
});
$("#bt_confCommessa").on("click", function () {
_contattiCommesse.convalida_commessa();
});
$("#bt_nuovaCommessa").on("click", function () {
_contattiCommesse.arr_attivita = null;
var ragSoc = blankIfNull($("input[name='rag_soc']").getValue());
var descr_commessa = ragSoc.toUpperCase();
_contattiCommesse.toggle_formCommessa(false);
$("#panel-commessa").find("input[name='descrizione']").setValue(descr_commessa);
var $statoCommessa = $("#panel-commessa").find("[name='stato_commessa']");
if ($statoCommessa.children("option[data-is_default_nuova_commessa='S']").exists()) {
$statoCommessa.val($statoCommessa.children("option[data-is_default_nuova_commessa='S']").attr("value"));
}
$("#listCommesseAperte").selectpicker("val", "").trigger("change");
});
$("#bt_viewWeekActivities").on("click", function () {
var $bt = $(this);
var $usernameAttivita = $("select[name='attivita-user_name']");
var userName = [$usernameAttivita.getValue()];
var $dataStimated = $("input[name='attivita-data_inizioStimata']");
var $oraStimated = $("select[name='attivita-ora_inizioStimata']");
var $minStimated = $("select[name='attivita-min_inizioStimata']");
_contattiCommesse.activity.viewWeekItems(userName, $dataStimated, $oraStimated, $minStimated, $bt);
});
$("#bt_confAttivita").on("click", function () {
_contattiCommesse.convalida_attivita(false);
});
$("#bt_confAttivitaStartOrder").on("click", function () {
_contattiCommesse.convalida_attivita(true);
});
$("button[data-bt_back_to]").on("click", function () {
var $panelTo = $("#panel-" + $(this).attr("data-bt_back_to"));
var $panelFrom = $(this).closest(".panel");
$panelFrom.children(".panel-body").slideUp(500, function () {
$panelTo.children(".panel-body").slideDown();
});
});
$("select[name='attivita-activity_type_id']").on("change", function () {
$("#attivita-data_inizioStimata, #attivita-ora_inizioStimata, #attivita-min_inizioStimata").val("");
$("#bt_confAttivitaStartOrder").enabled($(this).getValue() == "PREVENTIVAZIONE");
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
cliente: null,
activity: null,
arr_commesse: [],
arr_mansioni: [],
arr_attivita: null,
formDest: null,
_dia: null,
init: function () {
var self = this;
self.module = new Module();
self.module.load();
var $commesseAperte = $("#listCommesseAperte");
$commesseAperte.selectpicker({showSubtext: true});
$commesseAperte.on("changed.bs.select", function () {
_contattiCommesse.set_formCommessa();
});
self._dia = new DateIntervalAutomations();
self._dia._$activityResultId = $("select[name='attivita-activity_result_id']");
self._dia._$activityTypeId = $("select[name='attivita-activity_type_id']");
self._dia._$dataEstimated = $("input[name='attivita-data_inizioStimata']");
self._dia._$oraEstimated = $("input[name='attivita-ora_inizioStimata']");
self._dia._$minEstimated = $("input[name='attivita-min_inizioStimata']");
self._dia._$oraEstimatedEnd = $("input[name='attivita-ora_fineStimata']");
self._dia._$minEstimatedEnd = $("input[name='attivita-min_fineStimata']");
self._dia._$dataEffective = $("input[name='attivita-data_inizioEffettiva']");
self._dia._$oraEffective = $("input[name='attivita-ora_inizioEffettiva']");
self._dia._$minEffective = $("input[name='attivita-min_inizioEffettiva']");
self._dia._$oraEffectiveEnd = $("input[name='attivita-ora_fineEffettiva']");
self._dia._$minEffectiveEnd = $("input[name='attivita-min_fineEffettiva']");
var $activityDescription = $("input[name='attivita-activity_description']");
self._dia.init_fields();
self._dia.refresh_effectiveFieldsVisibility()
.init_events()
.refresh_estimatedDuration()
.refresh_effectiveDuration()
.refresh_effectiveFieldsVisibility();
_common.init_checkPartIva(true)
.init_checkCodFisc(true)
.init_autocompleteLocation()
.init_descrAttivitaSuggestion(self._dia._$activityTypeId, $activityDescription);
$("#bt_confAttivitaStartOrder").disabled();
var $formClie = $("#form-cliente");
$formClie.find("select[name='cod_vtip']").selectpicker({
liveSearch: true,
size: 10,
noneSelectedText: "NON SELEZIONATA"
});
$formClie.find("select[name='cod_vzon']").selectpicker({
liveSearch: true,
size: 10,
noneSelectedText: "NON SELEZIONATA",
dropdownAlignRight: true
});
$formClie.find("input[name='flag_informativa']").parent().btn_checkbox();
$formClie.find("input[name='flag_consenso']").parent().btn_checkbox();
if (isset_urlParameter("anag")) {
var anag = get_urlParameter("anag");
if (!is_null(anag) && anag.length > 1) {
var ajax = new Ajax();
ajax.get("get_cliente")
.data({cod_anag: anag.substr(1), tipo_anag: anag.charAt(0)})
.$toDisable($("#content"))
.noticeAsToast()
.onSuccess(function (ret) {
var cliente = ret.returnData;
if (!is_null(cliente)) {
self.fill_formCliente(cliente);
}
})
.execute();
}
}
_common.getListMansioniPersRif().then(function (arr_mansioni) {
self.arr_mansioni = arr_mansioni;
$("#form-persRif").find("[name='mansione']").dropmenuSuggestion({items: arr_mansioni});
});
self.formDest = _formDest;
self.formDest.init();
self.formDest.refresh();
},
getAttivitaProcesso: function (processActivityId) {
if (!is_null(processActivityId)) {
var self = this;
var ajax = new Ajax();
ajax.get("getAttivitaProcesso")
.data({processActivityId: processActivityId})
.noticeAsModal()
.onSuccess(function (ret) {
self.arr_attivita = ret.returnData;
})
.execute();
} else {
new ModalBox().danger("Processo non acquisito");
}
},
toggle_formCliente: function (action) {
var self = this;
self.arr_commesse = [];
var $formClie = $("#form-cliente");
var $ragSoc = $formClie.find("input[name='rag_soc']");
$formClie.find(".has-error").removeClass("has-error");
$formClie.find("input, select").val("");
$formClie.find("input").readonly(false);
$formClie.find("select").enabled();
if (action == "clie-esistente") {
$formClie.find("input[name='tipo_anag']").val("C");
$ragSoc.readonly(false).attr("placeholder", "Cerca cliente");
} else if (action == "clie-nuovo") {
$formClie.find("input[name='tipo_anag']").val("P");
$formClie.find("select[name='nazione']").val("IT");
$formClie.find("select[name='cod_vtip']").selectpicker("val", "");
$formClie.find("input[name='flag_informativa']").prop("checked", false).parent().btn_checkbox("refresh");
$formClie.find("input[name='flag_consenso']").prop("checked", false).parent().btn_checkbox("refresh");
$ragSoc.removeAttr("placeholder");
}
$ragSoc.focus();
$formClie.find("select[name='cod_vtip'], select[name='cod_vzon']").selectpicker("refresh");
$("#bt_formClieReset").disabled();
self.reset_formPersRif();
self.formDest.reset();
self.reset_commessaPrecompilata();
},
fill_formCliente: function (cliente) {
var self = this;
var d = $.Deferred();
var tipoAnag = cliente.tipo_anag;
var codAnag = cliente.cod_anag;
if (tipoAnag === "F") { // se originariamente fornitore, compilo solo i dati anagrafici come se fosse nuovo
cliente.tipo_anag = "P";
cliente.cod_anag = null;
let clie_nuovo_btn = $(".radio_btn[data-action='clie-nuovo']");
if (clie_nuovo_btn.hasClass("disabled")) {
$(".radio_btn[data-action='clie-nuovo']").trigger("click");
}
} else if ($(".radio_btn[data-action='clie-esistente']").hasClass("disabled")) {
$(".radio_btn[data-action='clie-esistente']").trigger("click");
}
var $formClie = $("#form-cliente");
$.each(cliente, function (key, value) {
var $input = $formClie.find("input[name='" + key + "'], select[name='" + key + "']");
if ($input.exists()) {
if ($input.is_inputCheckbox()) {
$input.prop("checked", value === "S");
} else {
$input.val(value).blur();
}
} else {
console.warn("input name=" + key + " non trovato nel form");
}
});
if (cliente.tipo_anag === "C") {
$formClie.find("input:not([name=e_mail])").readonly();
$formClie.find("select").disabled();
} else {
$formClie.find("input").readonly(false);
$formClie.find("select").enabled();
$formClie.find("[name='cod_anag']").disabled();
}
$formClie.find("select[name='cod_vtip'], select[name='cod_vzon']").selectpicker("refresh");
$formClie.find("input[name='flag_informativa']").parent().btn_checkbox("refresh");
$formClie.find("input[name='flag_consenso']").parent().btn_checkbox("refresh");
$("#bt_formClieReset").enabled();
self.get_persRif(tipoAnag, codAnag).then(function (ret) {
self.set_formPersRif(ret);
self.formDest.update(tipoAnag, codAnag).then(function () {
self.formDest.refresh();
d.resolve();
});
});
return d;
},
reset_commessaPrecompilata: function () {
$("#listCommesseAperte").attr("data-res_src_commessa", null);
return this;
},
convalida_cliente: function () {
var self = this;
var codAnag = null, tipoAnag = null;
var $codAnag = $("#form-cliente input[name='cod_anag']");
var $tipoAnag = $("#form-cliente input[name='tipo_anag']");
if ($(".radio_btn[data-action='clie-nuovo']").hasClass("disabled")) {
codAnag = $codAnag.getValue();
tipoAnag = $tipoAnag.getValue();
}
if (is_null(codAnag)) {
var ret = self.check_formClie();
if (ret.returnId == -1) {
var errorText = ret.errorText;
if (!$(".radio_btn[data-action='clie-esistente']").hasClass("disabled")) {
errorText = "Il cliente non è stato selezionato";
}
new Toast().warning(errorText, "Dati incompleti");
return;
}
}
if ($("button[data-action='dest-no']").hasClass("disabled")) {
var ret = self.formDest.check();
if (ret.returnId == -1) {
new Toast().warning(ret.errorText, "Dati incompleti");
return;
}
}
var ret = self.check_formPersRif();
if (ret.returnId == -1) {
new Toast().warning(ret.errorText, "Dati incompleti");
return;
}
$("#panel-cliente").children(".panel-body").slideUp(500);
var $formCommessa = $("#panel-commessa");
var $commesseAperte = $("#listCommesseAperte");
$commesseAperte.html("<option value=''>Non selezionata</option>");
$commesseAperte.selectpicker("val", "").trigger("change");
var codVdes = false; // non c'è destinatario
if ($("button[data-action='dest-no']").hasClass("disabled")) { // c'è destinatario
codVdes = $("#codVdes").getValue(); // se nullo è nuovo
}
if (!is_null(codAnag) && !is_null(codVdes)) {
_common.getListCommesseAperteCliente(codAnag, tipoAnag, codVdes).done(function (ret) {
self.arr_commesse = ret.returnData;
self.arr_attivita = null;
var $usernameCommessa = $("select[name='user_name']");
//var userName = $usernameCommessa.getValue(); // !!! viene sovrascritto
for (var i = 0; i < self.arr_commesse.length; i++) {
var item = self.arr_commesse[i];
var codJcom = item.cod_jcom;
var userNameProcesso = item.user_name_processo;
var descrizione = item.descrizione;
var note = ucfirst(blankIfNull(item.note));
var dataIns = !is_null(item.ora_ins_act) ? item.ora_ins_act.unixtime_format("DD/MM/YYYY") : "";
var $option = $("<option value='" + codJcom + "' data-subtext='" + trim(note + " del " + dataIns) + "'>" + codJcom + " " + descrizione + "</option>");
if (!$usernameCommessa.has_option(userNameProcesso) && _USER.username != userNameProcesso) {
$option.disabled();
$option.html($option.html() + " (" + userNameProcesso + ")");
}
$commesseAperte.append($option);
}
if ($usernameCommessa.has_option(_USER.username)) {
$usernameCommessa.val(_USER.username);
}
var codJcomPrecomp = $commesseAperte.getDataAttr("res_src_commessa");
if (!is_null(codJcomPrecomp) && $commesseAperte.has_option(codJcomPrecomp)) {
$commesseAperte.val(codJcomPrecomp);
self.set_formCommessa();
} else {
self.toggle_formCommessa(self.arr_commesse.length > 0);
}
$commesseAperte.closest(".row").toggle(self.arr_commesse.length > 0);
$commesseAperte.selectpicker("refresh");
$commesseAperte.trigger("change");
if (self.arr_commesse.length === 0) {
$("#bt_nuovaCommessa").trigger("click");
}
$formCommessa.children(".panel-body").slideDown();
})
.fail(function () {
$("#panel-cliente").children(".panel-body").slideDown();
});
} else {
$commesseAperte.closest(".row").hide();
$("#bt_nuovaCommessa").trigger("click");
$formCommessa.children(".panel-body").slideDown();
}
},
convalida_commessa: function () {
var self = this;
if (_checkForm.checkData($("#panel-commessa > .panel-body"), true, true, true)) {
var $listAttivitaPrec = $("#list-attivita_precedenti");
var $tbody = $listAttivitaPrec.children("tbody");
$tbody.html("");
$listAttivitaPrec.closest(".row").toggle(!is_null(self.arr_attivita) && self.arr_attivita.length > 0);
if (!is_null(self.arr_attivita)) {
for (var i = 0; i < self.arr_attivita.length; i++) {
var item = self.arr_attivita[i];
var tr = "<tr>\n\
<td class='text-center'>" + (!is_null(item.estimated_time) ? item.estimated_time.unixtime_format("DD/MM/YYYY HH:mm") : "") + "</td>\n\
<td>" + item.activity_type_id + " <span class='text-muted small'>" + item.activity_description + "</span></td>\n\
</tr>";
$tbody.append(tr);
}
}
var $usernameCommessa = $("select[name='user_name']");
var $usernameAttivita = $("select[name='attivita-user_name']");
$usernameAttivita.val("");
//$usernameAttivita.parent().toggle(!$usernameCommessa.valueIsEmpty());
if (!$usernameCommessa.valueIsEmpty()) {
$usernameAttivita.val($usernameCommessa.getValue());
}
if ($("select[name='attivita-activity_type_id']").getValue() == "VISITA" && $("input[name='attivita-data_inizioStimata']").valueIsEmpty()) {
var mNow = moment().floor(15, "minutes");
self._dia._$dataEstimated.datepicker("setDate", mNow.toDate());
self._dia.set_timePicker(mNow.unix(), self._dia._$oraEstimated, self._dia._$minEstimated);
self._dia._$oraEstimated.trigger("change");
}
$("#panel-commessa").children(".panel-body").slideUp(500, function () {
$("#panel-attivita").children(".panel-body").slideDown();
});
} else {
new Toast().warning("Verificare che siano stati compilati tutti i campi richiesti", "Dati incompleti");
}
},
convalida_attivita: function (flag_createOrder) {
var self = this;
var modalBox = new ModalBox();
var $userName = $("select[name='user_name']");
var $usernameAttivita = $("select[name='attivita-user_name']");
var $activityDescription = $("input[name='attivita-activity_description']");
var $note = $("input[name='attivita-note']");
var userName = $userName.getValue();
var codAnag = null;
var tipoAnag = $("#form-cliente input[name='tipo_anag']").getValue();
if ($(".radio_btn[data-action='clie-nuovo']").hasClass("disabled")) {
codAnag = $("#form-cliente input[name='cod_anag']").getValue();
}
var cliente = null, destinazione = null, persRif = null;
let ret = self.check_formClie();
if (ret.returnId === 1) {
cliente = ret.returnData;
if ($("button[data-action='dest-no']").hasClass("disabled")) {
ret = self.formDest.check();
if (ret.returnId === 1) {
destinazione = ret.returnData;
}
}
if (ret.returnId === 1) {
ret = self.check_formPersRif();
if (ret.returnId === 1) {
persRif = ret.returnData;
}
}
}
if (ret.returnId === 1) {
if (_checkForm.checkData($("#panel-attivita > .panel-body"), true, true, true) === false) {
ret = {returnId: -1, errorText: "Verificare che siano stati compilati tutti i campi richiesti"};
}
}
var attivita_estimatedTime = null, attivita_estimatedEndtime = null;
if (ret.returnId === 1) {
attivita_estimatedTime = self._dia.get_estimatedTime();
if (is_null(attivita_estimatedTime)) {
ret = {returnId: -1, errorText: "Ora inizio pianificazione non valida"};
} else {
attivita_estimatedEndtime = self._dia.get_estimatedEndtime();
if (is_null(attivita_estimatedEndtime)) {
ret = {returnId: -1, errorText: "Ora fine pianificazione non valida"};
} else if (attivita_estimatedTime > attivita_estimatedEndtime) {
ret = {
returnId: -1,
errorText: "L'ora di fine pianificazione non può essere inferiore a quella di inizio"
};
}
}
}
if (ret.returnId === 1) {
var attivita_effectiveTime = null, attivita_effectiveEndtime = null;
var $activityResultId = $("select[name='attivita-activity_result_id']");
var activityResultId = $activityResultId.getValue();
var flagActivityResult = self._dia.get_flagActivityResult();
if (flagActivityResult) {
attivita_effectiveTime = self._dia.get_effectiveTime();
if (is_null(attivita_effectiveTime)) {
ret = {returnId: -1, errorText: "Ora inizio effettiva non valida"};
} else {
attivita_effectiveEndtime = self._dia.get_effectiveEndtime();
if (is_null(attivita_effectiveEndtime)) {
ret = {returnId: -1, errorText: "Ora fine effettiva non valida"};
} else if (attivita_effectiveTime > attivita_effectiveEndtime) {
ret = {
returnId: -1,
errorText: "L'ora effettiva finale non può essere antecedente a quella iniziale"
};
}
}
}
}
if (ret.returnId === 1) {
var codJflav = !is_null(userName) ? $userName.optionSelected().attr("data-cod_jflav") : null;
var data = {
// dati acquisiti da panel cliente
cliente: cliente,
codAnag: codAnag,
tipoAnag: tipoAnag,
destinazione: destinazione,
persRif: persRif,
// dati acquisiti da panel commessa
codJcom: $("input[name='cod_jcom']").getValue(),
descrizione: $("input[name='descrizione']").getValue(),
codJfas: $("select[name='cod_jfas']").getValue(),
statoCommessa: $("select[name='stato_commessa']").getValue(),
processActivityId: $("input[name='processo-activity_id']").getValue(),
userName: userName,
codJflav: codJflav,
note: $("input[name='note']").getValue(),
// dati acquisiti da panel attivita
attivita_userName: $usernameAttivita.getValue(),
attivita_activityTypeId: $("select[name='attivita-activity_type_id']").getValue(),
attivita_estimatedTime: attivita_estimatedTime,
attivita_estimatedEndtime: attivita_estimatedEndtime,
attivita_activityDescription: $activityDescription.getValue(),
attivita_note: $note.getValue(),
attivita_activityResultId: activityResultId,
attivita_effectiveTime: attivita_effectiveTime,
attivita_effectiveEndtime: attivita_effectiveEndtime,
flag_createOrder: flag_createOrder
};
var $panelAttivita = $("#panel-attivita");
var ajax = new Ajax();
ajax.post("save_visita")
.data(data)
.confirmModal({message: "Confermare i dati inseriti?"})
.$button($("#bt_confAttivita"))
.$toDisable($panelAttivita)
.koAsModal()
.waitModal()
.onWarning({modalBox: {message: ret.errorText, title: ret.errorTitle, locationHref: _PHP_SELF}})
.onSuccess(function (ret) {
$panelAttivita.children(".panel-body").slideUp();
if (!flag_createOrder) {
modalBox.sm().success().content(ret.returnString).show().then(function () {
_APP.location.href(_PHP_SELF);
});
} else {
var key = ret.returnData.key;
_APP.location.href("catalogo.php?order=" + _ojbc.B64JSON_stringify(key), "Reindirizzamento al preventivo");
}
})
.execute();
} else {
new Toast().warning(ret.errorText, "Dati incompleti");
}
},
toggle_formCommessa: function (readonly) {
var $form = $("#form-commessa");
$form.find("input, select").val("");
$form.find("div.has-error").removeClass("has-error");
$form.find("input").readonly(readonly);
$form.find("select").disabled(readonly);
if (_USER.is_agente() || _USER.is_tecnico()) {
var $userName = $form.find("select[name='user_name']");
if ($userName.has_option(_USER.username)) {
$userName.val(_USER.username);
}
}
},
set_formCommessa: function () {
var self = this;
self.arr_attivita = null;
var codJcom = $("#listCommesseAperte").getValue();
self.toggle_formCommessa(!is_null(codJcom));
if (!is_null(codJcom)) {
var result = Enumerable.From(self.arr_commesse).Where(function (x) {
return x.cod_jcom == codJcom;
}).ToArray();
if (result.length > 0) {
var item = result[0];
var $form = $("#form-commessa");
$form.find("input[name='cod_jcom']").val(codJcom);
$form.find("input[name='processo-activity_id']").val(item.activity_id);
$form.find("input[name='descrizione']").val(item.descrizione);
$form.find("input[name='note']").val(item.note);
$form.find("select[name='user_name']").val(item.user_name);
$form.find("select[name='cod_jfas']").val(item.cod_jfas);
$form.find("select[name='stato_commessa']").val(item.stato_commessa);
self.getAttivitaProcesso(item.activity_id);
} else {
new Toast().danger("Dati commessa non acquisiti");
}
}
},
check_formClie: function () {
var clieData = _checkForm.checkData($("#form-cliente"));
if (clieData !== false) {
return {returnId: 1, returnData: clieData};
} else {
return {returnId: -1, errorText: "Compila tutti i dati richiesti per il cliente"};
}
},
set_formPersRif: function (ret) {
var self = this;
var $tbody = $("#form-persRif").find("tbody");
$tbody.html("");
if (ret.returnId == 1) {
var arr_persRif = ret.returnData;
for (var i = 0; i < arr_persRif.length; i++) {
var item = arr_persRif[i];
var $tr = self.append_$tr_persRif();
$tr.find("[name='id_pers_rif']").val(item.id_pers_rif);
$tr.find("[name='persona_rif']").val(item.persona_rif);
$tr.find("[name='mansione']").val(item.mansione);
$tr.find("[name='telefono']").val(item.telefono);
$tr.find("[name='num_cellulare']").val(item.num_cellulare);
$tr.find("[name='e_mail']").val(item.e_mail);
$tr.find("input").readonly(false);
$tr.find("button").removeClass("invisible");
$tbody.append($tr);
$tr.find("[name='mansione']").dropmenuSuggestion({items: self.arr_mansioni});
}
}
},
append_$tr_persRif: function () {
return this.module.get_$template("tr-pers_rif");
},
get_persRif: function (tipoAnag, codAnag) {
var d = $.Deferred();
var ajax = new Ajax();
ajax.get("get_persRifClie").data({tipoAnag: tipoAnag, codAnag: codAnag}).koAsToast().deferred(d).execute();
return d;
},
reset_formPersRif: function () {
$("#form-persRif").find("tbody").html("");
return this;
},
check_formPersRif: function () {
var ret = {returnId: 1, returnData: []};
$("#form-persRif").find("tbody").children().each(function () {
if (ret.returnId == 1) {
var $tr = $(this);
var d = _checkForm.checkData($tr);
if (d !== false) {
ret.returnData.push(d);
} else {
ret = {returnId: -1, errorText: "Compilare tutti i campi richiesti per le persone di riferimento"};
return false;
}
}
});
return ret;
}
};

View File

@@ -1,314 +0,0 @@
$(function () {
$("#bt_editCliente, #bt_saveCliente").on("click", function () {
var $formClie = $("#form-cliente");
var $formDest = $("#form-destinazione");
var $formPersRif = $("#form-persRif");
var $btEdit = $("#bt_editCliente");
var $btSave = $("#bt_saveCliente");
if ($(this).attr("id") == "bt_editCliente") {
$btSave.show();
$btEdit.hide();
var tipoAnag = _contattiCommesse.get_tipoAnag();
if (tipoAnag == "P") {
$formClie.disableAll(false);
}
$formDest.add($formPersRif).disableAll(false);
$formPersRif.find("button").removeClass("invisible");
} else {
_contattiCommesse.save_cliente().then(function (ret) {
if (ret) {
$btSave.hide();
$btEdit.show();
$formClie.add($formDest).add($formPersRif).disableAll();
$formPersRif.find("button").addClass("invisible");
}
});
}
});
$("#bt_editCommessa, #bt_saveCommessa").on("click", function () {
var $formCommessa = $("#form-commessa");
var $btEdit = $("#bt_editCommessa");
var $btSave = $("#bt_saveCommessa");
if ($(this).attr("id") == "bt_editCommessa") {
$btSave.show();
$btEdit.hide();
$formCommessa.disableAll(false);
} else {
_contattiCommesse.save_commessa().then(function (ret) {
if (ret) {
$btSave.hide();
$btEdit.show();
$formCommessa.disableAll();
}
});
}
});
$("#printPdfComm").on("click", function () {
var $bt = $(this);
var codJcom = _contattiCommesse.get_codJcom();
var ajax = new Ajax();
ajax.get("getPdfCommessa")
.data({codJcom: codJcom})
.$button($bt)
.noticeAsToast()
.onSuccess({modalBox: {IFrame: true}})
.execute();
});
$(document).on("click", ".edit_activity, .bt_newActivity", function () {
var parentActivityId = null, attivita = null;
if ($(this).hasClass("edit_activity")) {
var $tr = $(this).closest("[data-row_attivita]");
attivita = $tr.getDataAttr("row_attivita");
parentActivityId = attivita.parent_activity_id;
} else {
var $processo = $(this).closest("div[data-processo]");
parentActivityId = $processo.getDataAttr("processo");
var codJcom = _contattiCommesse.get_codJcom();
attivita = {activity_id: null, parent_activity_id: parentActivityId, cod_jcom: codJcom};
}
var popupFormAttivita = new PopupFormAttivita();
popupFormAttivita
.attivita(attivita)
.onSave(function (ret) {
var $processo = $("div[data-processo='" + blankIfNull(parentActivityId) + "']");
var $listAttivita = $processo.find("table.list-attivita");
var $tbody = $listAttivita.children("tbody");
var $alert_noActivities = $processo.find(".alert_noActivities");
$processo.removeClass("collapsed");
$listAttivita.show();
$alert_noActivities.hide();
$tbody.html(atob(ret.returnString));
})
.page("view-commessa")
.open();
});
$(document).on("click", ".delete_activity", function () {
var $bt = $(this);
var $row = $bt.closest("[data-activity_id]");
var attivita = $row.getDataAttr("row_attivita");
_contattiCommesse.activity.delete(attivita, $bt).done(function (ret) {
var $processo = $row.closest("[data-processo]");
var $alert_noActivities = $processo.find(".alert_noActivities");
var $listAttivita = $processo.find("table.list-attivita");
var $tbody = $listAttivita.children("tbody");
$tbody.html(atob(ret.returnString));
$listAttivita.toggle($tbody.children().length > 0);
$alert_noActivities.toggle($tbody.children().length == 0);
$processo.toggleClass("collapsed", $tbody.children().length == 0);
});
});
$(document).on("click", ".pdf_order", function () {
var $bt = $(this);
var ajax = new Ajax();
ajax.get("get_pdfOrder")
.data({key: $bt.getDataAttr("key")})
.$button($bt)
.noticeAsModal()
.onSuccess({downloadFile: true})
.execute();
});
$(document).on("click", ".tb_list-files-gestione button[data-source_type]", function () {
var $bt = $(this);
var sourceType = $bt.getDataAttr("source_type");
var key = $bt.getDataAttr("key");
var ajax = new Ajax();
ajax.get("get")
.data({source_type: sourceType, key: key})
.module("allegati")
.$button($bt)
.noticeAsToast()
.onSuccess({downloadFile: true})
.execute();
});
$(document).on("click", ".bt_viewFiles", function () {
var $bt = $(this);
if (_allegati.isLoaded()) {
var modalAllegati = new ModalAllegati();
modalAllegati
.activityId($bt.closest("[data-activity_id]").getDataAttr("activity_id"))
.sourceTypes([_allegati.sourceTypes.ATTIVITA])
.allowUpload([_allegati.sourceTypes.ATTIVITA])
.allowDelete([_allegati.sourceTypes.ATTIVITA])
.editableDescription([_allegati.sourceTypes.ATTIVITA])
.$button($bt)
.onChange(function (c) {
$bt.find(".badge").bs_element_setStyle(c > 0 ? "primary" : "default").text(c);
})
.open();
}
});
_contattiCommesse.init();
});
var _contattiCommesse = {
module: null,
activity: null,
arr_mansioni: [],
formDest: null,
init: function () {
var self = this;
self.module = new Module();
self.module.load();
$("#form-cliente, #form-destinazione, #form-persRif, #form-commessa").disableAll();
_common.init_checkPartIva(false)
.init_checkCodFisc(false)
.init_autocompleteLocation();
_common.getListMansioniPersRif().then(function (arr_mansioni) {
self.arr_mansioni = arr_mansioni;
$("#form-persRif").find("[name='mansione']").dropmenuSuggestion({items: arr_mansioni});
});
var $formClie = $("#form-cliente");
$formClie.find("select[name='cod_vtip']").selectpicker({liveSearch: true, noneSelectedText: "NON SELEZIONATA"});
$formClie.find("select[name='cod_vzon']").selectpicker({liveSearch: true, noneSelectedText: "NON SELEZIONATA"});
$formClie.find("input[name='flag_informativa']").parent().btn_checkbox();
$formClie.find("input[name='flag_consenso']").parent().btn_checkbox();
var $formDest = $("#form-destinazione");
self.formDest = _formDest;
if (!$("#codVdes").valueIsEmpty()) {
$formDest.find("select[name='cod_vzon']").selectpicker({liveSearch: true, size: 10, noneSelectedText: ""});
} else {
$formDest.hide();
}
},
get_codJcom: function () {
return nullIfEmpty(get_urlParameter("view"));
},
get_tipoAnag: function () {
return $("#form-cliente").find("[name='tipo_anag']").getValue();
},
check_formClie: function () {
var clieData = _checkForm.checkData($("#form-cliente"));
if (clieData !== false) {
return {returnId: 1, returnData: clieData};
} else {
return {returnId: -1, errorText: "Compila tutti i dati richiesti per il cliente"};
}
},
check_formPersRif: function () {
var ret = {returnId: 1, returnData: []};
var arr_personaRif = [];
var $form = $("#form-persRif");
$form.find("tbody").children().each(function () {
if (ret.returnId == 1) {
var $tr = $(this);
var d = _checkForm.checkData($tr);
if (d !== false) {
var personaRif = d.persona_rif.toLowerCase();
if (arr_personaRif.indexOf(personaRif) < 0) {
ret.returnData.push(d);
arr_personaRif.push(personaRif);
} else {
ret = {
returnId: -1,
errorText: "Non è possibile specificare più persone di riferimento con lo stesso nominativo"
};
}
} else {
ret = {returnId: -1, errorText: "Compilare tutti i campi richiesti per le persone di riferimento"};
}
}
});
return ret;
},
save_cliente: function () {
var self = this;
var d = $.Deferred();
var modalBox = new ModalBox();
var ret = {returnId: 1};
var data = {};
if (self.get_tipoAnag() == "P") {
var ret = self.check_formClie(); // tipo_anag e cod_anag passati sono ignorati nel salvataggio (vengono riletti dalla commessa)
if (ret.returnId == 1) {
data = ret.returnData;
}
}
if (ret.returnId == 1) {
data.cod_jcom = _contattiCommesse.get_codJcom();
if (!$("#codVdes").valueIsEmpty()) {
var ret = self.formDest.check();
if (ret.returnId == 1) {
data.destinazione = ret.returnData;
}
}
if (ret.returnId == 1) {
var ret = self.check_formPersRif();
if (ret.returnId == 1) {
data.persRif = ret.returnData;
new Ajax()
.post("save_cliente")
.data(data)
.noticeAsModal()
.$toDisable($("#form-cliente").closest(".panel-body"))
.$button($("#bt_editCliente"))
.onSuccess({toast: {message: "I dettagli del cliente sono stati aggiornati"}})
.execute(function (ret) {
d.resolve(ret.returnId == 1);
});
} else {
modalBox.danger(ret.errorText);
d.resolve(false);
}
} else {
modalBox.danger(ret.errorText);
d.resolve(false);
}
} else {
modalBox.danger(ret.errorText);
d.resolve(false);
}
return d;
},
save_commessa: function () {
var d = $.Deferred();
var ret = _checkForm.checkData($("#form-commessa"));
if (ret !== false) {
ret.cod_jflav = !is_null(ret.userName) ? $("select[name='user_name']").optionSelected().attr("data-cod_jflav") : null;
new Ajax()
.post("save_commessa")
.$button($("#bt_saveCommessa"))
.$toDisable($("#form-commessa").closest(".panel-body"))
.data(ret)
.noticeAsModal()
.onSuccess({toast: {message: "I dettagli della commessa sono stati aggiornati"}})
.execute(function (ret) {
d.resolve(ret.returnId === 1);
});
} else {
d.resolve(false);
}
return d;
}
};

View File

@@ -1,180 +0,0 @@
#list-commesse {
th.day {
background-color: #eee;
}
.fa-circle {
font-size: 0.8em;
&.text- {
&success {
color: #77dd77;
}
&warning {
color: #ffb347;
}
}
}
tr[data-cod_jcom] {
cursor: pointer;
.badge {
white-space: normal;
}
}
hr {
margin-top: 2px;
margin-bottom: 2px;
}
}
#list-clie {
font-size: 12px;
select#go-commessa {
max-width: 150px;
}
}
.panel[data-processo] {
@media(max-width: 767px) {
> .panel-body {
padding: 0;
overflow-x: auto;
}
}
}
.modal-box {
label {
margin-bottom: 0;
}
}
.pagination {
margin: 0;
}
#m_tbAllegati {
.fa.fileicon {
font-size: 1.3em;
}
}
.bt_resetCommessa, .bt_resetCliente {
width: 40px;
&:not(.wait) .fa-spin {
display: none;
}
&.wait .fa-times {
display: none;
}
}
.fc-daygrid-day-number {
font-weight: bold;
margin: 3px;
}
table.fc-scrollgrid.fc-scrollgrid-liquid, .fc-popover {
a {
color: unset;
}
.fc-daygrid-event:hover, .fc-daygrid-dot-event.fc-event-mirror {
filter: brightness(85%);
}
}
a.fc-daygrid-block-event .calendarEvent {
background-image: url("data:image/svg+xml,%3Csvg width='100' height='20' viewBox='0 0 100 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.184 20c.357-.13.72-.264 1.088-.402l1.768-.661C33.64 15.347 39.647 14 50 14c10.271 0 15.362 1.222 24.629 4.928.955.383 1.869.74 2.75 1.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888 13.278 60.562 12 50 12c-10.626 0-16.855 1.397-26.66 5.063l-1.767.662c-2.475.923-4.66 1.674-6.724 2.275h6.335zm0-20C13.258 2.892 8.077 4 0 4V2c5.744 0 9.951-.574 14.85-2h6.334zM77.38 0C85.239 2.966 90.502 4 100 4V2c-6.842 0-11.386-.542-16.396-2h-6.225zM0 14c8.44 0 13.718-1.21 22.272-4.402l1.768-.661C33.64 5.347 39.647 4 50 4c10.271 0 15.362 1.222 24.629 4.928C84.112 12.722 89.438 14 100 14v-2c-10.271 0-15.362-1.222-24.629-4.928C65.888 3.278 60.562 2 50 2 39.374 2 33.145 3.397 23.34 7.063l-1.767.662C13.223 10.84 8.163 12 0 12v2z' fill='%239C92AC' fill-opacity='0.2' fill-rule='evenodd'/%3E%3C/svg%3E");
}
a.fc-daygrid-block-event {
border: unset !important;
color: white;
background-color: unset !important;
}
.fc-day-today {
background: #f2f9fd !important;
text-align: center;
vertical-align: middle;
.fc-daygrid-day-number {
width: 27px;
height: 27px;
color: #FFFFFF !important;
background-color: #4285f4;
border-radius: 50%;
}
}
.fc-day-sun > .fc-daygrid-day-frame > .fc-daygrid-day-top {
text-align: center;
vertical-align: middle;
.fc-daygrid-day-number {
width: 27px;
height: 27px;
color: #FFFFFF;
background-color: #f3424e;
border-radius: 50%;
}
}
.tooltip {
opacity: 1 !important;
z-index: 10000;
}
.tooltip-inner {
background-color: unset;
&:after {
content: attr(title);
position: absolute;
left: 20%;
bottom: 24px;
width: 128px;
background-color: yellow;
opacity: 0;
-webkit-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
&:hover:after {
opacity: 1;
}
}
.fc {
.fc-daygrid-body {
.fc-daygrid-day-top {
flex-direction: row;
justify-content: space-between;
}
}
.fcEventButton {
padding: 4px;
cursor: pointer;
color: #081922;
&:hover {
color: #3788d8;
}
}
}
@media (max-width:800px) {
.fc .fc-toolbar-title {
font-size: 19px !important;
text-align: center;
}
}

View File

@@ -1,14 +0,0 @@
SELECT CASE WHEN c = 0 THEN NULL ELSE c END AS c
FROM (
SELECT count(distinct activity_id) AS c
FROM (
SELECT activity_id
FROM stb_activity
INNER JOIN jtb_comt ON stb_activity.cod_jcom = jtb_comt.cod_jcom
WHERE stb_activity.user_name = '[user_name]'
AND stb_activity.flag_tipologia = 'A'
AND stb_activity.effective_enddate IS NULL
AND stb_activity.ora_view_act IS NULL
AND jtb_comt.stato_commessa in ('IN CORSO','POST VENDITA','TRATTATIVA')
) t
) s

View File

@@ -1,26 +0,0 @@
SELECT activity_id,
parent_activity_id,
activity_type_id,
activity_result_id,
parent_activity_id,
cod_jcom,
stb_activity.note,
ISNULL(estimated_time, effective_time) AS estimated_time,
ISNULL(estimated_endtime, effective_endtime) AS estimated_endtime,
effective_time,
effective_endtime,
ISNULL(effective_time, estimated_time) AS data_inizio,
ISNULL(effective_endtime, estimated_endtime) AS data_fine,
CASE WHEN user_creator = '[user_name]' THEN 1 ELSE 0 END AS is_createdFromUser,
stb_activity.user_name,
activity_description,
stb_activity.cod_anag AS cod_anag_clie,
stb_activity.tipo_anag AS tipo_anag_clie,
ISNULL(gtb_anag.rag_soc, ptb_pros.rag_soc) AS rag_soc_clie
FROM stb_activity
LEFT OUTER JOIN gtb_anag ON stb_activity.cod_anag = gtb_anag.cod_anag AND
stb_activity.tipo_anag = 'C'
LEFT OUTER JOIN ptb_pros ON stb_activity.cod_anag = ptb_pros.cod_ppro AND
stb_activity.tipo_anag = 'P'
WHERE activity_id = '[activity_id]'

View File

@@ -1,11 +0,0 @@
SELECT TOP 1 activity_type_id,
activity_description,
ISNULL(flag_activity_result, 0) AS stato,
ISNULL(effective_time, estimated_time) AS data_attivita,
stb_activity.activity_result_id AS stato_attivita
FROM stb_activity
LEFT OUTER JOIN stb_activity_result
ON stb_activity.activity_result_id = stb_activity_result.activity_result_id
WHERE cod_jcom = '[cod_jcom]'
AND flag_tipologia = 'A'
ORDER BY data_attivita DESC

View File

@@ -1,13 +0,0 @@
SELECT stb_user.user_name,
UPPER(wtb_users.full_name) AS full_name,
jrl_flav_users.cod_jflav
FROM wtb_users
INNER JOIN stb_user ON wtb_users.user_name = stb_user.user_name
INNER JOIN jrl_flav_users ON stb_user.user_name = jrl_flav_users.user_name
/*WHERE stb_user.key_group = '[key_group]'
OR stb_user.user_name IN (SELECT value_string AS utente_amministratore
FROM stb_gest_setup
CROSS APPLY dbo.ParseStringIntoArray(stb_gest_setup.value, '|')
WHERE gest_name = 'PVM'
AND section = 'CONTATTI_COMMESSE'
AND key_section = 'LISTA_UTENTI_AMMINISTRATORI')*/

View File

@@ -1,9 +0,0 @@
SELECT stb_user.user_name,
UPPER(wtb_users.full_name) AS full_name,
jrl_flav_users.cod_jflav
FROM wtb_users
INNER JOIN stb_user ON wtb_users.user_name = stb_user.user_name
INNER JOIN jrl_flav_users ON stb_user.user_name = jrl_flav_users.user_name
INNER JOIN srl_user ON stb_user.user_name = srl_user.user_name2
WHERE /*stb_user.key_group = '[key_group]'
AND */srl_user.user_name1 = '[user_name]'

View File

@@ -1,63 +0,0 @@
SELECT *
FROM (
SELECT activity_id,
activity_type_id,
activity_description,
jtb_comt.cod_jfas,
jtb_fasi.descrizione AS descrizione_fase,
stb_activity.activity_result_id,
stb_activity_result.flag_activity_result,
stb_activity.note,
stb_activity.cod_jcom,
jtb_comt.descrizione AS descr_commessa,
ISNULL(estimated_time, effective_time) AS estimated_time,
ISNULL(estimated_endtime, effective_endtime) AS estimated_endtime,
effective_time,
effective_endtime,
ISNULL(effective_time, estimated_time) AS data_inizio,
ISNULL(effective_endtime, estimated_endtime) AS data_fine,
stb_activity.user_name,
stb_activity.user_name AS assegnato_a,
user_creator,
user_modifier,
parent_activity_id,
ora_view_act,
ora_ins_act,
ISNULL(ora_ins_act, data_ins_act) AS data_ins,
jtb_comt.cod_anag,
jtb_comt.tipo_anag,
jtb_comt.cod_vdes,
ISNULL(flag_activity_result, 0) AS stato,
CASE WHEN user_creator = '[user_name]' THEN 1 ELSE 0 END AS is_createdFromUser,
CASE WHEN stb_activity.activity_result_id IS NULL THEN 0 ELSE 1 END AS is_closed,
CASE
WHEN stb_activity.user_name <> '[user_name]'
THEN ora_ins_act
ELSE ISNULL(effective_time, estimated_time)
END AS data_attivita,
stb_activity.cod_anag AS cod_anag_clie,
stb_activity.tipo_anag AS tipo_anag_clie,
ISNULL(gtb_anag.rag_soc, ptb_pros.rag_soc) AS rag_soc_clie,
gtb_anag.citta,
gtb_anag.prov
FROM stb_activity
INNER JOIN jtb_comt ON stb_activity.cod_jcom = jtb_comt.cod_jcom
LEFT OUTER JOIN jtb_fasi ON jtb_comt.cod_jfas = jtb_fasi.cod_jfas
LEFT OUTER JOIN stb_activity_result
ON stb_activity.activity_result_id = stb_activity_result.activity_result_id
LEFT OUTER JOIN gtb_anag ON stb_activity.cod_anag = gtb_anag.cod_anag AND
stb_activity.tipo_anag = 'C'
LEFT OUTER JOIN ptb_pros ON stb_activity.cod_anag = ptb_pros.cod_ppro AND
stb_activity.tipo_anag = 'P'
WHERE stb_activity.flag_tipologia = 'A'
AND jtb_comt.stato_commessa in ('IN CORSO','POST VENDITA','TRATTATIVA')
AND activity_type_id IN (
SELECT activity_type_id
FROM srl_activity_type_user
INNER JOIN jrl_flav_users ON srl_activity_type_user.user_name = jrl_flav_users.user_name
INNER JOIN wtb_users ON wtb_users.User_name = jrl_flav_users.user_name AND
wtb_users.user_name = '[user_name]'
)
) t
WHERE 1 = 1

View File

@@ -1,5 +0,0 @@
SELECT cod_jfas, jtb_fasi.descrizione
FROM jtb_fasi
inner join jtb_mfas ON jtb_fasi.cod_mfas = jtb_mfas.cod_mfas
WHERE jtb_mfas.flag_tipologia IN ('R', 'E')
ORDER BY jtb_fasi.descrizione

View File

@@ -1,50 +0,0 @@
SELECT * FROM (
SELECT jtb_comt.cod_jcom,
jtb_comt.descrizione,
jtb_comt.descrizione_estesa,
jtb_comt.stato_commessa,
jtb_comt.note,
jtb_comt.tipo_anag,
jtb_comt.cod_anag,
jtb_comt.cod_vdes,
jtb_comt.cod_jfas,
jtb_fasi.descrizione AS descrizione_fase,
jtb_comt.cod_jflav,
jtb_comt.cod_jflav_tec,
processo.user_name AS user_name_processo,
ISNULL(wtb_usersAgenti.user_name, wtb_users.user_name) AS user_name_agen,
jrl_flav_users.user_name AS user_name_lav,
wtb_users.full_name,
null as activity_id,
pvw_clienti_prospect.rag_soc AS rag_soc_clie,
ISNULL(pvw_clienti_prospect.cod_vage, wtb_users.user_code) AS cod_vage,
null AS ora_ins_act,
null AS estimated_time,
null AS note_ultima_attivita,
null AS descrizione_ultima_attivita,
null as esito_ultima_attivita,
processo.data_iniz as data_iniz,
null as activity_result_id,
jtb_flav_tec.user_name as user_name_tec
FROM jtb_comt
outer apply (
select TOP 1 user_name, IsNull(effective_date, estimated_date) as data_iniz
from stb_activity
WHERE stb_activity.cod_jcom = jtb_comt.cod_jcom AND
stb_activity.parent_activity_id is null
order by data_ins_act
) processo
LEFT OUTER JOIN jrl_flav_users ON jtb_comt.cod_jflav = jrl_flav_users.cod_jflav and jrl_flav_users.flag_jflav_default = 's'
LEFT OUTER JOIN jrl_flav_users jtb_flav_tec ON jtb_comt.cod_jflav_tec = jtb_flav_tec.cod_jflav and jtb_flav_tec.flag_jflav_default = 's'
LEFT OUTER JOIN wtb_users ON jrl_flav_users.user_name = wtb_users.user_name
LEFT OUTER JOIN pvw_clienti_prospect ON jtb_comt.cod_anag = pvw_clienti_prospect.cod_ppro AND
jtb_comt.tipo_anag = pvw_clienti_prospect.tipologia
LEFT OUTER JOIN wtb_users wtb_usersAgenti ON pvw_clienti_prospect.cod_vage = wtb_usersAgenti.user_code
LEFT OUTER JOIN jtb_fasi ON jtb_comt.cod_jfas = jtb_fasi.cod_jfas
where jtb_comt.stato_commessa in ('IN CORSO','POST VENDITA','TRATTATIVA')
) t
WHERE 1 = 1

View File

@@ -1,8 +0,0 @@
SELECT jtb_comt.cod_jcom,
stb_activity.estimated_date
FROM jtb_comt
INNER JOIN stb_activity
ON jtb_comt.cod_jcom = stb_activity.cod_jcom AND
stb_activity.flag_tipologia = 'P' AND
stb_activity.parent_activity_id IS NULL
WHERE (effective_enddate IS NULL OR effective_endtime IS NULL)

View File

@@ -1,32 +0,0 @@
SELECT jtb_comt.cod_jcom
FROM (
/* COMMESSE PRESENTI NELLE ATTIVITA ASSEGNATE ALL'UTENTE */
SELECT cod_jcom
FROM stb_activity
WHERE user_name = '[user_name]'
UNION
/* COMMESSE DEI CLIENTI AVENTI AGENTE = UTENTE */
SELECT cod_jcom
FROM jtb_comt
INNER JOIN pvw_clienti_prospect
ON jtb_comt.cod_anag = pvw_clienti_prospect.cod_ppro AND
jtb_comt.tipo_anag = pvw_clienti_prospect.tipologia
INNER JOIN wtb_users ON pvw_clienti_prospect.cod_vage = wtb_users.user_code
WHERE user_name = '[user_name]'
UNION
/* COMMESSE AVENTI LAVORATORE = UTENTE */
SELECT cod_jcom
FROM jtb_comt
INNER JOIN jrl_flav_users
ON jtb_comt.cod_jflav = jrl_flav_users.cod_jflav
WHERE user_name = '[user_name]'
) jtb_comt
INNER JOIN stb_activity
ON jtb_comt.cod_jcom = stb_activity.cod_jcom AND
stb_activity.flag_tipologia = 'P' AND
stb_activity.parent_activity_id IS NULL
WHERE (effective_enddate IS NULL OR effective_endtime IS NULL)

View File

@@ -1,38 +0,0 @@
SELECT *
FROM (
SELECT pvw_clienti_prospect.tipologia AS tipo_anag,
pvw_clienti_prospect.cod_ppro AS cod_anag,
pvw_clienti_prospect.rag_soc,
pvw_clienti_prospect.rag_soc2,
pvw_clienti_prospect.cod_canale AS cod_vtip,
vtb_tipi.descrizione AS descr_tipo,
pvw_clienti_prospect.cod_vzon,
vtb_zone.descrizione AS descr_zona,
pvw_clienti_prospect.indirizzo,
pvw_clienti_prospect.cap,
pvw_clienti_prospect.citta,
pvw_clienti_prospect.prov,
pvw_clienti_prospect.nazione,
pvw_clienti_prospect.telefono,
pvw_clienti_prospect.part_iva,
pvw_clienti_prospect.cod_fisc,
pvw_clienti_prospect.e_mail,
pvw_clienti_prospect.e_mail_pec,
pvw_clienti_prospect.cuu_pa,
pvw_clienti_prospect.cod_paga,
gtb_paga.descrizione AS descr_paga,
pvw_clienti_prospect.flag_stato,
CASE WHEN pvw_clienti_prospect.flag_stato = 'I' THEN '(NON ATTIVO)' END AS descr_stato,
pvw_clienti_prospect.data_ins,
pvw_clienti_prospect.flag_informativa,
pvw_clienti_prospect.flag_consenso
FROM pvw_clienti_prospect
LEFT OUTER JOIN vtb_tipi ON pvw_clienti_prospect.cod_canale = vtb_tipi.cod_vtip
LEFT OUTER JOIN vtb_zone ON pvw_clienti_prospect.cod_vzon = vtb_zone.cod_vzon
LEFT OUTER JOIN gtb_paga ON pvw_clienti_prospect.cod_paga = gtb_paga.cod_paga
WHERE [COND_TIPOLOGIA]
(pvw_clienti_prospect.cod_anag IS NULL OR
pvw_clienti_prospect.cod_anag = pvw_clienti_prospect.cod_ppro_anag)
) t
WHERE tipo_anag IN ('C', 'P')
ORDER BY rag_soc

View File

@@ -1,37 +0,0 @@
SELECT *
FROM (
SELECT 'C' AS tipo_anag,
cod_vdes,
destinatario AS rag_soc,
indirizzo,
cap,
citta,
prov,
nazione,
tel AS telefono,
cod_aliq_in,
cod_aliq_out,
e_mail,
cod_vzon
FROM vtb_dest
WHERE 'C' = '[tipo_anag]'
AND cod_anag = '[cod_anag]'
UNION ALL
SELECT 'P',
cod_pdes,
rag_soc,
indirizzo,
cap,
citta,
prov,
nazione,
telefono,
cod_aliq_in,
cod_aliq_out,
e_mail,
cod_vzon
FROM ptb_dest
WHERE 'P' = '[tipo_anag]'
AND cod_ppro = '[cod_anag]'
) t
WHERE 1 = 1

View File

@@ -1,11 +0,0 @@
SELECT mansione
FROM (
SELECT mansione
FROM vtb_clie_pers_rif
WHERE mansione IS NOT NULL
UNION
SELECT mansione
FROM ptb_pros_rif
WHERE mansione IS NOT NULL
) t
ORDER BY 1

View File

@@ -1,22 +0,0 @@
SELECT 'C' AS tipo_anag,
id_pers_rif,
persona_rif,
mansione,
telefono,
e_mail,
num_cellulare
FROM vtb_clie_pers_rif
WHERE 'C' = '[tipo_anag]'
AND cod_anag = '[cod_anag]'
AND cod_vdes IS NULL
UNION ALL
SELECT 'P',
id_pers_rif,
persona_rif,
mansione,
telefono,
e_mail,
num_cellulare
FROM ptb_pros_rif
WHERE 'P' = '[tipo_anag]'
AND cod_ppro = '[cod_anag]'

View File

@@ -1,16 +0,0 @@
SELECT *
FROM (
SELECT jtb_rlavr.cod_jcom,
da_ora,
a_ora,
ore,
stb_activity.activity_description AS desc_attivita,
jtb_comt.descrizione AS desc_commessa,
jtb_rlavr.data_lav
FROM jtb_rlavr
INNER JOIN stb_activity ON stb_activity.activity_id = jtb_rlavr.activity_id
INNER JOIN jtb_comt ON jtb_rlavr.cod_jcom = jtb_comt.cod_jcom
WHERE stb_activity.user_name = '[user_name]'
) t
WHERE 1 = 1
ORDER BY da_ora

View File

@@ -1,27 +0,0 @@
SELECT jtb_com_stato.stato_commessa,
CASE
WHEN ISNULL(jtb_com_stato.stato_commessa, '') =
ISNULL(dbo.getGestSetup('PVM', 'CONTATTI_COMMESSE', 'STATO_DEFAULT_NUOVA_COMMESSA'), '') THEN 'S'
ELSE 'N' END AS is_default_nuova_commessa,
CASE WHEN s.is_enabled IS NULL THEN 'N' ELSE 'S' END AS is_enabled
FROM (
SELECT jtb_com_stato.stato_commessa,
0 AS sort
FROM jtb_com_stato
WHERE flag_attivo = 'S'
UNION
SELECT NULL,
2
) jtb_com_stato
LEFT OUTER JOIN (
SELECT DISTINCT stato_commessa,
1 AS is_enabled
FROM jtb_comt
INNER JOIN stb_activity ON
jtb_comt.cod_jcom = stb_activity.cod_jcom AND
stb_activity.flag_tipologia = 'P' AND
stb_activity.parent_activity_id IS NULL
WHERE (effective_enddate IS NULL OR effective_endtime IS NULL)
) s ON ISNULL(s.stato_commessa, '') = ISNULL(jtb_com_stato.stato_commessa, '')
WHERE 1 = 1
ORDER BY s.is_enabled DESC, jtb_com_stato.sort, jtb_com_stato.stato_commessa

View File

@@ -1,7 +0,0 @@
SELECT activity_type_description
FROM stb_activity_typer
INNER JOIN stb_activity_type ON stb_activity_typer.activity_type_id = stb_activity_type.activity_type_id AND
stb_activity_type.flag_attiva = 'S'
WHERE stb_activity_typer.flag_tipologia = 'A'
AND 1 <> 1
ORDER BY activity_type_description

View File

@@ -1,27 +0,0 @@
SELECT stb_activity_type.activity_type_id, estimated_duration
FROM stb_activity_type
INNER JOIN srl_activity_type_user
ON stb_activity_type.activity_type_id = srl_activity_type_user.activity_type_id AND
stb_activity_type.flag_tipologia = srl_activity_type_user.flag_tipologia
INNER JOIN jrl_flav_users ON srl_activity_type_user.user_name = jrl_flav_users.user_name AND
jrl_flav_users.flag_jflav_default = 'S'
INNER JOIN wtb_users ON wtb_users.User_name = jrl_flav_users.user_name AND
wtb_users.user_name = '[user_name]'
WHERE stb_activity_type.flag_tipologia = 'A'
AND stb_activity_type.flag_attiva = 'S'
ORDER BY 1
/*SELECT stb_activity_type.activity_type_id, estimated_duration
FROM stb_activity_type
INNER JOIN srl_activity_type_user
ON stb_activity_type.activity_type_id = srl_activity_type_user.activity_type_id AND
stb_activity_type.flag_tipologia = srl_activity_type_user.flag_tipologia
INNER JOIN jrl_flav_users ON srl_activity_type_user.user_name = jrl_flav_users.user_name AND
jrl_flav_users.flag_jflav_default = 'S'
INNER JOIN wtb_users ON wtb_users.User_name = jrl_flav_users.user_name AND
wtb_users.user_name = '[user_name]'
INNER JOIN srl_activity_type on stb_activity_type.activity_type_id = srl_activity_type.activity_type_id_next AND
stb_activity_type.flag_tipologia = srl_activity_type.flag_tipologia_next
WHERE stb_activity_type.flag_attiva = 'S'
-- AND srl_activity_type.activity_type_id = '[activity_type_id]'
ORDER BY 1 */

View File

@@ -1,10 +0,0 @@
SELECT wtb_users.user_name,
UPPER(wtb_users.full_name) AS full_name,
jrl_flav_users.cod_jflav
FROM wtb_users
INNER JOIN stb_user ON wtb_users.user_name = stb_user.user_name
INNER JOIN srl_user ON stb_user.user_name = srl_user.user_name2
INNER JOIN jrl_flav_users ON stb_user.user_name = jrl_flav_users.user_name
WHERE srl_user.user_name1 = '[user_name]'
AND jrl_flav_users.flag_jflav_default = 'S'
AND stb_user.flag_attivo = 'S'