#!/bin/bash
# Copyright 2014-2018 Chad Lemmen http://www.lemmen.com

echo
echo "This script will delete all data from a Stansoft database."
echo "It is intended to be run after testing has been completed"
echo "on a newly setup database. It will not delete any codes or"
echo "the beginning general ledger balances."
echo
echo "WARNING: Before continuing make sure you have a good backup."
echo "         The only way to undo this is by restoring from a backup."
echo
echo "Make sure the correct database environment is set prior to"
echo "running this script. The environment can be set with:"
echo ". /opt/stansoft/etc/postgres.sh (make sure to include the dot space)"
echo "or for Informix:"
echo ". \$INFORMIXDIR/ol_informix.sh (make sure to include the dot space)"
echo

read -p "Are you sure? (Type 'Yes' to continue with the delete) "
if [ "$REPLY" != "Yes" ]; then
  echo "You must type the word Yes if you want to delete... exiting"            
  exit                                                                          
fi                                                                              

if [[ $A4GL_SQLTYPE == pg* ]]; then
  # Postgres
  sqlcmd=psql
else
  # Informix
  sqlcmd=dbaccess
fi


"$sqlcmd" stansoft <<- SQL
  delete from ar_ach_entries where 1=1;
  delete from ar_cust_aging where 1=1;
  delete from ar_item where 1=1;
  delete from ar_item_tag where 1=1;
  delete from ar_log where 1=1;
  delete from ar_openitem where 1=1;
  delete from fd_comment where 1=1;
  delete from fd_delivery where 1=1;
  delete from fd_order where 1=1;
  delete from fm_cost where 1=1;
  delete from fm_delivery where 1=1;
  delete from fm_delvr_d where 1=1;
  delete from fm_lad_tax where 1=1;
  delete from fm_lading where 1=1;
  delete from fm_lading_d where 1=1;
  delete from fm_movement where 1=1;
  delete from fm_mv_bal where 1=1;
  delete from gl_journal where 1=1;
  delete from gl_jrnl_ap where 1=1;
  delete from gl_jrnl_ar where 1=1;
  delete from gl_jrnl_fm where 1=1;
  delete from gl_jrnl_py where 1=1;
  delete from gl_jrnl_rs where 1=1;
  delete from gl_jrnl_text where 1=1;
  delete from gl_jrnl_ws where 1=1;

  update gl_master set glm_amt_period1  = 0,
                       glm_amt_period2  = 0,
                       glm_amt_period3  = 0,
                       glm_amt_period4  = 0,
                       glm_amt_period5  = 0,
                       glm_amt_period6  = 0,
                       glm_amt_period7  = 0,
                       glm_amt_period8  = 0,
                       glm_amt_period9  = 0,
                       glm_amt_period10 = 0,
                       glm_amt_period11 = 0,
                       glm_amt_period12 = 0,
                       glm_amt_period13 = 0,
                       glm_amt_period14 = glm_amt_period0
  where 1=1;

  delete from inv_cost_hist where 1=1;
  delete from inv_counts where 1=1;
  delete from inv_cnt_lot where 1=1;
  delete from inv_history where 1=1;
  delete from inv_pur_cstlr where 1=1;
  delete from inv_rec_head where 1=1;
  delete from inv_rec_line where 1=1;
  delete from inv_rec_tax where 1=1;
  delete from inv_rec_lot where 1=1;
  delete from inv_sls_cstlr where 1=1;
  delete from p_ach_sent where 1=1;
  delete from p_checks where 1=1;
  delete from p_dchk where 1=1;
  delete from p_item where 1=1;
  delete from p_item_d where 1=1;
  delete from p_mchk where 1=1;
  delete from p_nbr where 1=1;
  delete from p_openitem where 1=1;
  delete from p_pay_d where 1=1;
  delete from p_payment where 1=1;
  delete from p_selection where 1=1;
  delete from pyach where 1=1;
  delete from pyhchk where 1=1;
  delete from pyichk where 1=1;
  delete from pymhis where 1=1;
  delete from pythis where 1=1;
  delete from pyedi where 1=1;
  delete from rs_b_hold_delete where 1=1;
  delete from rs_b_mass_upd where 1=1;
  delete from rs_b_price_change where 1=1;
  delete from rs_b_purch where 1=1;
  delete from rs_b_purline where 1=1;
  delete from rs_cat_current where 1=1;
  delete from rs_daily where 1=1;
  delete from rs_pos_fuel where 1=1;
  delete from rs_pos_item where 1=1;
  delete from rs_pos_lnk where 1=1;
  delete from rs_pos_payout where 1=1;
  delete from rs_pos_promo where 1=1;
  delete from rs_pos_tax where 1=1;
  delete from rs_pos_tender where 1=1;
  delete from rs_purch where 1=1;
  delete from rs_purcline where 1=1;
  delete from rs_reading where 1=1;
  delete from rs_scat where 1=1;
  delete from rs_shiftlink where 1=1;
  delete from rs_summary where 1=1;
  delete from rs_taxes where 1=1;
  delete from si_alt_addr where 1=1;
  delete from si_inv_line where 1=1;
  delete from si_inv_tax where 1=1;
  delete from si_inv_text where 1=1;
  delete from si_inv_lot where 1=1;
  delete from si_invoice where 1=1;
  delete from si_nbr where 1=1;
  delete from sih_alt_addr where 1=1;
  delete from sih_batches where 1=1;
  delete from sih_inv_line where 1=1;
  delete from sih_inv_tax where 1=1;
  delete from sih_inv_text where 1=1;
  delete from sih_invoice where 1=1;
  delete from sys_lock where 1=1;
  delete from sys_row_lock where 1=1;
  delete from tx_vat_return where 1=1;
SQL
