#!/bin/bash VERSION="1.1.0" . /usr/src/m2/framework/bash_functions.sh . /usr/src/m2/framework/settings.sh k_config_details confline_names=('"Cell_m2_invoice_number"' '"Cell_m2_invoice_issue_date"' '"Cell_m2_invoice_period_start"' '"Cell_m2_invoice_period_end"' '"Cell_m2_invoice_client_name"' '"Cell_m2_invoice_due_date"' '"Cell_m2_invoice_client_details1"' '"Cell_m2_invoice_client_details2"' '"Cell_m2_invoice_client_details3"' '"Cell_m2_invoice_client_details4"' '"Cell_m2_invoice_client_details5"' '"Cell_m2_invoice_client_details6"' '"Cell_m2_invoice_lines_destination"' '"Cell_m2_invoice_lines_name"' '"Cell_m2_invoice_lines_calls"' '"Cell_m2_invoice_lines_nice_total_time"' '"Cell_m2_invoice_lines_nice_price"' '"Cell_m2_invoice_lines_destination_number"' '"Cell_m2_invoice_nice_total_amount"' '"Cell_m2_invoice_nice_total_amount_with_tax"' '"Cell_m2_invoice_exchange_rate"' '"Cell_m2_invoice_comment"' '"Cell_m2_invoice_timezone"') confline_values_old=("D2" "H2" "G6" "H6" "G5" "F5" "F6" "G7" "G8" "G9" "G10" "G11" "B13" "F13" "I13" "H13" "J13" "A13" "A4" "A5" "A3" "A2" "A1") confline_values_new=("G2" "G3" "B10" "D10" "B2" "G4" "B3" "B4" "B5" "B6" "B7" "B8" "B13" "C13" "F13" "G13" "H13" "A13" "E25" "E26" "G26" "D27" "G10") # Dealing with arrays in shell is ugly :( conflines_modified=0 conflines_already_new=1 invoice_file_modified=0 check_if_invoice_cells_new() { # return conflines_already_new = 0, if invocie conflines are NOT in new version # conflines_modified = 1, if invocie conflines are already in new version local confline_count local confline_name local retrieved_value conflines_count=${#confline_names[@]} for (( i=0; i < conflines_count; i++ )); do confline_name=${confline_names[$i]} retrieved_value=$(MYSQL_PWD=$DB_PASSWORD /usr/bin/mysql -h "$DB_HOST" -u $DB_USERNAME $P_OPT "$DB_NAME" --silent -e "select value from conflines where name = $confline_name and owner_id = 0 limit 1" | grep -v value); # http://trac.kolmisoft.com/trac/ticket/10991 # Check if invoice cell is not deleted if [ -z $retrieved_value ]; then conflines_already_new="0"; break; fi if [ $retrieved_value != "${confline_values_new[$i]}" ]; then conflines_already_new="0"; break; fi done } check_if_old_invoice_cells_modified() { # return conflines_modified = 0, if invocie conflines were NOT modified by the client # conflines_modified = 1, if invocie conflines were modified local confline_count local confline_name local retrieved_value conflines_count=${#confline_names[@]} for (( i=0; i < conflines_count; i++ )); do confline_name=${confline_names[$i]} retrieved_value=$(MYSQL_PWD=$DB_PASSWORD /usr/bin/mysql -h "$DB_HOST" -u $DB_USERNAME $P_OPT "$DB_NAME" --silent -e "select value from conflines where name = $confline_name and owner_id = 0 limit 1" | grep -v value); # http://trac.kolmisoft.com/trac/ticket/10991 # Check if invoice cell is not deleted if [ -z $retrieved_value ]; then conflines_modified="1"; break; fi if [ $retrieved_value != "${confline_values_old[$i]}" ]; then conflines_modified="1"; break; fi done } check_if_invoice_file_modified() { local old_modified=0 local new_modified=0 local old_template="/usr/src/m2/gui/gui_config_files/default.xlsx" local new_template="/usr/src/m2/gui/gui_config_files/default_new.xlsx" local template_in_system="/home/m2/public/invoice_templates/default.xlsx" if [ -f $template_in_system ]; then if diff $old_template $template_in_system | grep -q 'Binary'; then old_modified=1 fi if diff $new_template $template_in_system | grep -q 'Binary'; then new_modified=1 fi fi if [ $old_modified == "1" ] && [ $new_modified == "1" ]; then invoice_file_modified=1 fi }