/** * Event Method for Authnet Payment Process * test with credit card 4111111111111111 * American Express Card Test : 378282246310005 * @param $evtcl -- Object */ function eventProcessAuthNetPayment(Eventcontroler $evtcl) { $flag = true; if ($evtcl->tot_amt > $_SESSION['do_invoice']->amt_due) { $_SESSION['in_page_message'] = _("The Total Amount entered is greater than the invoice amount. Please re-enter."); $flag = false; } if ($flag) { // $this->Authnet_message = ""; include_once 'class/Authnet.class.php'; $payment_type = $evtcl->payment_type; $cc_number = $evtcl->cc; $cvv = trim($evtcl->cvv); $expire_year = $evtcl->expire_year; $expire_month = $evtcl->expire_month; $expiration = $evtcl->expire_month . $evtcl->expire_year; if ($evtcl->tot_amt > 0) { $total = $evtcl->tot_amt; } else { $total = $_SESSION['do_invoice']->amt_due; } $idinvoice = $_SESSION['do_invoice']->idinvoice; $idcontact = $_SESSION['do_invoice']->idcontact; $goto = $evtcl->goto; $do_contact = new Contact(); $arr_user_info = $do_contact->getContactInfo_For_Invoice($idcontact); $auth_login = $_SESSION['do_invoice']->authnet_login; $inv_info_arr = array(); $inv_info_arr['description'] = $_SESSION['do_invoice']->description; $inv_info_arr['inv_num'] = $_SESSION['do_invoice']->num; $auth_merchant_id = $_SESSION['do_invoice']->authnet_merchant_id; /* @param true = test mode @param false = non test mode i.e live */ $payment = new Authnet(false, $arr_user_info, $auth_login, $auth_merchant_id, $inv_info_arr); $cc_msg = $payment->validateCreditCard($cc_number, $payment_type, $cvv, $expire_year, $expire_month); if ($cc_msg == "") { $invoice = uniqid('ofuz_', true); $payment->transaction($cc_number, $expiration, $total, $cvv, $invoice); $payment->process(); if ($payment->isApproved()) { $reason = $payment->getResponseText(); // Display a printable receipt $_SESSION['in_page_message'] = _("This transaction has been approved. Thank you for your payment"); $transactionID = $payment->getTransactionID(); $do_pay_log = new PaymentLog(); $do_pay_log->addPaymentLog($transactionID, "AuthNet", $_SESSION['do_invoice']->idinvoice, $total); $idpayment_log = $do_pay_log->getPrimaryKeyValue(); $do_payment_inv = new PaymentInvoice(); $do_payment_inv->addPaymentInvoice($idpayment_log, $_SESSION['do_invoice']->idinvoice, $total); $this->updatePayment($total); $this->sendPaymentApprovedEmail($total, "Authorized.net", $transactionID); // Sending to customer $this->sendPaymentApprovedEmail($total, "Authorized.net", $transactionID, true); // Sending to user /* Lets check if the invoice has an call back URL and process that */ $do_inv_callback = new InvoiceCallback(); $do_User = $_SESSION['do_invoice']->getParentUser(); $do_inv_callback->processCallBack($this->idinvoice, $this->num, $total, $do_User->iduser, "ok", "AuthNet", $transactionID); /* Check if there is a next URL if so then set goto variable to that URL. Userful if we want the user to go to someother page Than in the goto page. This is triggered only when full payment is done. */ $next_url = $do_inv_callback->isNextUrl($this->idinvoice); //if($next_url !== false){ // $due_amt = $this->getDueAmount($this->idinvoice); // if($due_amt == '0.00'){ $goto = $next_url; // } //} $_SESSION['autologin_paid'] = True; // Add the CC info in the RecurrentInvoiceCC if ($evtcl->is_rec != 0 && $evtcl->is_cc == 0) { $RecurrentInvoiceCC = new RecurrentInvoiceCC(); $RecurrentInvoiceCC->add_cc_info($cc_number, $expire_year, $expire_month, $evtcl->payment_type, $evtcl->is_rec); } } else { if ($payment->isDeclined()) { $reason = $payment->getResponseText(); $do_inv_callback = new InvoiceCallback(); $do_inv_callback->processCallBack($this->idinvoice, $this->num, $total, $_SESSION['do_User']->iduser, "fail", "AuthNet", "", $reason); $goto = $evtcl->error_page; // As for another form of payment $_SESSION['in_page_message'] = _("The transaction has been declined.'{$reason}'"); } else { $reason = $payment->getResponseText(); //$reason .= $payment->getResponseCode(); $do_inv_callback = new InvoiceCallback(); $do_inv_callback->processCallBack($this->idinvoice, $this->num, $total, $_SESSION['do_User']->iduser, "fail", "AuthNet", "", $reason); $goto = $evtcl->error_page; // Ask the merchant to call us $_SESSION['in_page_message'] = _("The transaction failed.'{$reason}'"); } } } else { $_SESSION['in_page_message'] = $cc_msg; } } $evtcl->setDisplayNext(new Display($goto)); }
/** * Event Method for Stripe Payment Process * test with credit card 4242424242424242 * @param object $evtcl */ function eventProcessStripePayment(Eventcontroler $evtcl) { $flag = true; if ($evtcl->tot_amt > $_SESSION['do_invoice']->amt_due) { $_SESSION['in_page_message'] = _("The Total Amount entered is greater than the invoice amount. Please re-enter."); $flag = false; } if ($flag) { include_once 'class/Stripe.class.php'; include_once "stripe-lib/Stripe.php"; $token = $evtcl->stripeToken; $name = $evtcl->name; //$email = $evtcl->email; $description = $name; $srtipecustomer_id = $evtcl->stripecustomer_id; if ($evtcl->tot_amt > 0) { $total = $evtcl->tot_amt; } else { $total = $_SESSION['do_invoice']->amt_due; } //Amount need to conver to cents $total = $total * 100; $idinvoice = $_SESSION['do_invoice']->idinvoice; $idcontact = $_SESSION['do_invoice']->idcontact; $goto = $evtcl->goto; $error_page = $evtcl->error_page; $updateStripecustomer = $evtcl->updateStripecustomer; $do_contact = new Contact(); $arr_user_info = $do_contact->getContactInfo_For_Invoice($idcontact); $inv_info_arr = array(); $inv_info_arr['description'] = $_SESSION['do_invoice']->description; $inv_info_arr['inv_num'] = $_SESSION['do_invoice']->num; $stripe_api_key = $evtcl->stripe_api_key; $payment = new StripeGateWay(false, $stripe_api_key); if (empty($srtipecustomer_id)) { $result = $payment->CreateCustomer($token, $name, $total, $email = "", $description); } else { if ($updateStripecustomer === 'Yes') { $result = $payment->UpdateExistingCustomer($srtipecustomer_id, $token, $name, $total, $email = "", $description = ""); if ($result['update'] == 1) { $payment = new StripeGateWay(false, $stripe_api_key); $result = $payment->CreateCustomer($token, $name, $total, $email = "", $description); } } else { $result = $payment->ChargeExsistingCustomer($srtipecustomer_id, $total); } } if ($result['success'] == '1') { //set the amout back to $ value $total = $total / 100; //echo $result['customer_id'];die(); //Add the customer id in to stripe details class if (isset($result['customer_id'])) { $this->saveStripeCustomerId($_SESSION['do_invoice']->iduser, $_SESSION['do_invoice']->idcontact, $result['customer_id']); } // Display a printable receipt $_SESSION['in_page_message'] = _("This transaction has been approved. Thank you for your payment"); $do_pay_log = new PaymentLog(); $do_pay_log->addPaymentLog($result['response']['id'], "Stripe", $_SESSION['do_invoice']->idinvoice, $total); $idpayment_log = $do_pay_log->getPrimaryKeyValue(); $do_payment_inv = new PaymentInvoice(); $do_payment_inv->addPaymentInvoice($idpayment_log, $_SESSION['do_invoice']->idinvoice, $total); $this->updatePayment($total); //$this->sendPaymentApprovedEmail($total,"Stripe.com",$transactionID);// Sending to customer //$this->sendPaymentApprovedEmail($total,"Stripe.com",$transactionID,true); // Sending to user if (isset($_SESSION["upgrade"])) { $do_user = new User(); $date = date('Y-m-d'); $do_user->query("update user set plan='paid', regdate = '{$date}' where iduser="******"Y-m-d"), $_SESSION['do_User']->iduser); $do_ccdetails = new CcDetails(); $do_ccdetails->iduser = $_SESSION['do_User']->iduser; $do_ccdetails->token = $result['customer_id']; $do_ccdetails->type = 'Stripe'; $do_ccdetails->add(); $goto = 'index.php'; unset($_SESSION['upgrade']); } else { /* Lets check if the invoice has an call back URL and process that */ $do_inv_callback = new InvoiceCallback(); $do_User = $_SESSION['do_invoice']->getParentUser(); $do_inv_callback->processCallBack($this->idinvoice, $this->num, $total, $do_User->iduser, "ok", "Stripe", $transactionID); /* Check if there is a next URL if so then set goto variable to that URL. Userful if we want the user to go to someother page Than in the goto page. This is triggered only when full payment is done. */ $next_url = $do_inv_callback->isNextUrl($this->idinvoice); } //$goto = $next_url; $_SESSION['autologin_paid'] = True; } else { $rr = json_decode($result, true); //echo'<pre>';print_r($rr);echo'</pre>';die(); $r = $rr['error']['message']; $error_code = $rr['error']['code']; $error_type = $rr['error']['type']; if ($error_code == 'invalid_expiry_month' || $error_code == 'invalid_expiry_year' || $error_code == 'expired_card' || $error_code == 'missing') { $goto = $error_page; $_SESSION['updatecustomer'] = 'Yes'; } elseif ($error_type == 'invalid_request_error') { $goto = $error_page; $_SESSION['updatecustomer'] = 'Yes'; } $_SESSION['in_page_message'] = $r; } } $disp_next = new Display($goto); if (isset($_SESSION['upgrade'])) { $msg = "Thank You . Your payment has been apporved and now you are paid user."; $disp_next->addParam("message", $msg); } $evtcl->setDisplayNext($disp_next); }
if (!empty($_SESSION['do_invoice']->stripe_api_key) && !empty($_SESSION['do_invoice']->stripe_publish_key)) { $payment_mode = true; } } if ($payment_mode == true) { echo $_SESSION['do_invoice']->idcontact; $stripe_customer_id = $_SESSION['do_invoice']->getStripeCustomerId($_SESSION['do_invoice']->iduser, $_SESSION['do_invoice']->idcontact); if (!empty($stripe_customer_id)) { $total = $do_recurrent->net_total * 100; $payment = new StripeGateWay(false, $_SESSION['do_invoice']->stripe_api_key); $result = $payment->ChargeExsistingCustomer($stripe_customer_id, $total); if ($result['success'] == '1') { $total = $total / 100; $do_pay_log = new PaymentLog(); $do_pay_log->addPaymentLog($result['response']['id'], "Stripe", $_SESSION['do_invoice']->idinvoice, $total); $idpayment_log = $do_pay_log->getPrimaryKeyValue(); $do_payment_inv = new PaymentInvoice(); $do_payment_inv->addPaymentInvoice($idpayment_log, $_SESSION['do_invoice']->idinvoice, $total); //$this->sendPaymentApprovedEmail($total,"Stripe.com",$transactionID);// Sending to customer //$this->sendPaymentApprovedEmail($total,"Stripe.com",$transactionID,true); // Sending to user $inv_qry = new sqlQuery($conx); $date_paid = date("Y-m-d"); $status = 'Paid'; $invoice_note = 'Thanks for the business'; $sub_total = $total; $net_total = $total; $amt_due = '0.00'; $sql_update_invoice = "UPDATE invoice set\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t amount = '{$sub_total}',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t sub_total = '{$sub_total}',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t net_total = '{$net_total}', \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t status = '{$status}',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t amt_due = '{$amt_due}',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t datepaid = '{$date_paid}'\n\t\t\t\t\t\t\t\t\t\t\t\twhere idinvoice = " . $_SESSION['do_invoice']->idinvoice; echo $sql_update_invoice; $inv_qry->query($sql_update_invoice); $inv_qry->free();
function eventImportAccount(EventControler $evtcl) { $msg = ""; $uploaded_file = $_FILES['fields']['name']['import_account']; $target_path = 'files/' . $uploaded_file; if (!move_uploaded_file($_FILES['fields']['tmp_name']['import_account'], $target_path)) { $msg = "There was an error uploading the file, please try again!"; } else { chmod($target_path, 0755); if (file_exists($target_path)) { //$xml = simplexml_load_file($_SERVER['DOCUMENT_ROOT']."/".$target_path); $str_xml = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/" . $target_path); $str_xml = preg_replace('/[^(\\x20-\\x7F)]*/', '', $str_xml); $xml = simplexml_load_string($str_xml); echo '<pre>'; print_r($xml); echo '</pre>'; die; if ($xml !== FALSE) { $c_cnt = count($xml->contact); if ($c_cnt) { for ($i = 0; $i < $c_cnt; $i++) { $do_contact = new Contact(); $contact = $xml->contact[$i]; $do_contact->firstname = $contact->firstname; $do_contact->lastname = $contact->lastname; $do_contact->position = $contact->position; $do_contact->company = $contact->company; $do_contact->idcompany = $contact->idcompany; $do_contact->iduser = $_SESSION['do_User']->iduser; $do_contact->picture = $contact->picture; $do_contact->summary = $contact->summary; $do_contact->birthday = $contact->birthday; $do_contact->portal_code = $contact->portal_code; $do_contact->fb_userid = $contact->fb_userid; $do_contact->tw_user_id = $contact->tw_user_id; $do_contact->email_optout = $contact->email_optout; $do_contact->add(); $lastInsertedContId = $do_contact->getPrimaryKeyValue(); /** *Contact Address */ $ca_cnt = count($contact->contact_address); if ($ca_cnt) { for ($ca_cnt_i = 0; $ca_cnt_i < $ca_cnt; $ca_cnt_i++) { $do_contact_address = new ContactAddress(); $contact_address = $contact->contact_address[$ca_cnt_i]; $do_contact_address->city = $contact_address->city; $do_contact_address->country = $contact_address->country; $do_contact_address->state = $contact_address->state; $do_contact_address->street = $contact_address->street; $do_contact_address->zipcode = $contact_address->zipcode; $do_contact_address->idcontact = $lastInsertedContId; $do_contact_address->address = $contact_address->address; $do_contact_address->address_type = $contact_address->address_type; $do_contact_address->add(); $do_contact_address->free(); } } /** *Contact Email */ $ce_cnt = count($contact->contact_email); if ($ce_cnt) { for ($ce_cnt_i = 0; $ce_cnt_i < $ce_cnt; $ce_cnt_i++) { $do_contact_email = new ContactEmail(); $contact_email = $contact->contact_email[$ce_cnt_i]; $do_contact_email->idcontact = $lastInsertedContId; $do_contact_email->email_address = $contact_email->email_address; $do_contact_email->email_type = $contact_email->email_type; $do_contact_email->email_isdefault = $contact_email->email_isdefault; $do_contact_email->add(); $do_contact_email->free(); } } /** *Contact Phone */ $cp_cnt = count($contact->contact_phone); if ($cp_cnt) { for ($cp_cnt_i = 0; $cp_cnt_i < $cp_cnt; $cp_cnt_i++) { $do_contact_phone = new ContactPhone(); $contact_phone = $contact->contact_phone[$cp_cnt_i]; $do_contact_phone->phone_number = $contact_phone->phone_number; $do_contact_phone->phone_type = $contact_phone->phone_type; $do_contact_phone->idcontact = $lastInsertedContId; $do_contact_phone->add(); $do_contact_phone->free(); } } /** *Contact Note */ $cn_cnt = count($contact->contact_note); if ($cn_cnt) { for ($cn_cnt_i = 0; $cn_cnt_i < $cn_cnt; $cn_cnt_i++) { $do_contact_note = new ContactNotes(); $contact_note = $contact->contact_note[$cn_cnt_i]; $do_contact_note->idcontact = $lastInsertedContId; $do_contact_note->note = $contact_note->note; $do_contact_note->date_added = $contact_note->date_added; $do_contact_note->document = $contact_note->document; $do_contact_note->idcompany = $contact_note->idcompany; $do_contact_note->iduser = $_SESSION['do_User']->iduser; $do_contact_note->priority = $contact_note->priority; $do_contact_note->send_email = $contact_note->send_email; $do_contact_note->hours_work = $contact_note->hours_work; $do_contact_note->note_visibility = $contact_note->note_visibility; $do_contact_note->type = $contact_note->type; $do_contact_note->add(); $do_contact_note->free(); } } /** *Contact Tag */ $ctag_cnt = count($contact->contact_tag); if ($ctag_cnt) { for ($ctag_cnt_i = 0; $ctag_cnt_i < $ctag_cnt; $ctag_cnt_i++) { $do_tag = new Tag(); $contact_tag = $contact->contact_tag[$ctag_cnt_i]; $do_tag->tag_name = $contact_tag->tag_name; $do_tag->iduser = $_SESSION['do_User']->iduser; $do_tag->reference_type = $contact_tag->reference_type; $do_tag->idreference = $lastInsertedContId; $do_tag->date_added = $contact_tag->date_added; $do_tag->add(); $do_tag->free(); } } /** *Contact tasks which are not associated with Project */ //Contact tasks which are not associated with Project $ctwop_cnt = count($contact->contact_task_without_project); if ($ctwop_cnt) { for ($ctwop_cnt_i = 0; $ctwop_cnt_i < $ctwop_cnt; $ctwop_cnt_i++) { $do_task = new Task(); $contact_task_wo_p = $contact->contact_task_without_project[$ctwop_cnt_i]; $do_task->task_description = $contact_task_wo_p->task_description; $do_task->due_date = $contact_task_wo_p->due_date; $do_task->category = $contact_task_wo_p->category; $do_task->iduser = $_SESSION['do_User']->iduser; $do_task->due_date_dateformat = $contact_task_wo_p->due_date_dateformat; $do_task->status = $contact_task_wo_p->status; $do_task->date_completed = $contact_task_wo_p->date_completed; $do_task->idcontact = $lastInsertedContId; $do_task->from_note = $contact_task_wo_p->from_note; $do_task->is_sp_date_set = $contact_task_wo_p->is_sp_date_set; $do_task->task_category = $contact_task_wo_p->task_category; $do_task->add(); $do_task->free(); } } /** *Contact tasks which are associated with Project */ $arr_prj = array(); $cont_task_with_prj_cnt = count($contact->contact_task_with_project); if ($cont_task_with_prj_cnt) { for ($i = 0; $i < $cont_task_with_prj_cnt; $i++) { $do_project = new Project(); $project = $contact->contact_task_with_project[$i]; $do_project->iduser = $_SESSION['do_User']->iduser; $do_project->name = $project->name; $do_project->end_date_dateformat = $project->end_date_dateformat; $do_project->idcompany = $project->idcompany; $do_project->status = $project->status; $do_project->effort_estimated_hrs = $project->effort_estimated_hrs; $do_project->is_public = $project->is_public; $do_project->add(); $lastInsertedPrjId = $do_project->getPrimaryKeyValue(); //$arr_prj[$lastInsertedPrjId] = $project->idproject; $pt_cnt = count($project->project_task); if ($pt_cnt) { for ($pt_cnt_i = 0; $pt_cnt_i < $pt_cnt; $pt_cnt_i++) { $do_task = new Task(); $project_task = $project->project_task[$pt_cnt_i]; $do_task->task_description = $project_task->task_description; $do_task->due_date = $project_task->due_date; $do_task->category = $project_task->category; $do_task->iduser = $_SESSION['do_User']->iduser; $do_task->due_date_dateformat = $project_task->due_date_dateformat; $do_task->status = $project_task->status; $do_task->date_completed = $project_task->date_completed; $do_task->idcontact = $lastInsertedContId; $do_task->from_note = $project_task->from_note; $do_task->is_sp_date_set = $project_task->is_sp_date_set; $do_task->task_category = $project_task->task_category; $do_task->add(); $lastInsertedTaskId = $do_task->getPrimaryKeyValue(); $do_project_task = new ProjectTask(); $do_project_task->idtask = $lastInsertedTaskId; $do_project_task->idproject = $lastInsertedPrjId; $do_project_task->progress = $project_task->progress; $do_project_task->drop_box_code = $project_task->drop_box_code; $do_project_task->priority = $project_task->priority; $do_project_task->hrs_work_expected = $project_task->hrs_work_expected; $do_project_task->add(); $lastInsertedPrjTaskId = $do_project_task->getPrimaryKeyValue(); $pd_cnt = count($project_task->project_discuss); if ($pd_cnt) { for ($i = 0; $i < $pd_cnt; $i++) { $do_project_discuss = new ProjectDiscuss(); $project_discuss = $project_task->project_discuss[$i]; $do_project_discuss->idproject_task = $lastInsertedPrjTaskId; $do_project_discuss->idtask = $lastInsertedTaskId; $do_project_discuss->idproject = $lastInsertedPrjId; $do_project_discuss->discuss = $project_discuss->discuss; $do_project_discuss->date_added = $project_discuss->date_added; $do_project_discuss->document = $project_discuss->document; $do_project_discuss->iduser = $_SESSION['do_User']->iduser; $do_project_discuss->drop_box_sender = $project_discuss->drop_box_sender; $do_project_discuss->priority = $project_discuss->priority; $do_project_discuss->hours_work = $project_discuss->hours_work; $do_project_discuss->discuss_edit_access = $project_discuss->discuss_edit_access; $do_project_discuss->type = $project_discuss->type; $do_project_discuss->add(); $do_project_discuss->free(); } } $do_project_task->free(); $do_task->free(); } } $do_project->free(); } } /** *Invoice import */ $msg_inv = ""; $inv_cnt = count($contact->invoice); if ($inv_cnt) { for ($inv_cnt_i = 0; $inv_cnt_i < $inv_cnt; $inv_cnt_i++) { $do_invoice = new Invoice(); $invoice = $contact->invoice[$inv_cnt_i]; $do_invoice->num = $invoice->num; $do_invoice->iduser = $_SESSION['do_User']->iduser; $do_invoice->description = $invoice->description; $do_invoice->amount = $invoice->amount; $do_invoice->datepaid = $invoice->datepaid; $do_invoice->datecreated = $invoice->datecreated; $do_invoice->status = $invoice->status; $do_invoice->discount = $invoice->discount; $do_invoice->idcontact = $lastInsertedContId; $do_invoice->due_date = $invoice->due_date; $do_invoice->invoice_address = $invoice->invoice_address; $do_invoice->invoice_term = $invoice->invoice_term; $do_invoice->invoice_note = $invoice->invoice_note; $do_invoice->sub_total = $invoice->sub_total; $do_invoice->net_total = $invoice->net_total; $do_invoice->amt_due = $invoice->amt_due; $do_invoice->idcompany = $invoice->idcompany; $do_invoice->tax = $invoice->tax; $do_invoice->set_delete = $invoice->set_delete; $do_invoice->total_discounted_amt = $invoice->total_discounted_amt; $do_invoice->total_taxed_amount = $invoice->total_taxed_amount; $do_invoice->add(); $lastInsertedInvoiceId = $do_invoice->getPrimaryKeyValue(); $invline_cnt = count($invoice->invoiceline); if ($invline_cnt) { for ($invline_cnt_i = 0; $invline_cnt_i < $invline_cnt; $invline_cnt_i++) { $do_invoiceline = new InvoiceLine(); $invoiceline = $invoice->invoiceline[$invline_cnt_i]; $do_invoiceline->idinvoice = $lastInsertedInvoiceId; $do_invoiceline->description = $invoiceline->description; $do_invoiceline->price = $invoiceline->price; $do_invoiceline->qty = $invoiceline->qty; $do_invoiceline->total = $invoiceline->total; $do_invoiceline->item = $invoiceline->item; $do_invoiceline->line_tax = $invoiceline->line_tax; $do_invoiceline->discounted_amount = $invoiceline->discounted_amount; $do_invoiceline->taxed_amount = $invoiceline->taxed_amount; $do_invoiceline->add(); $do_invoiceline->free(); } } //invoiceline import ends // recurrentinvoice $recinv_cnt = count($invoice->recurrentinvoice); if ($recinv_cnt) { for ($recinv_cnt_i = 0; $recinv_cnt_i < $recinv_cnt; $recinv_cnt_i++) { $do_recurrentinvoice = new RecurrentInvoice(); $recurrentinvoice = $invoice->recurrentinvoice[$recinv_cnt_i]; $do_recurrentinvoice->iduser = $_SESSION['do_User']->iduser; $do_recurrentinvoice->idinvoice = $lastInsertedInvoiceId; $do_recurrentinvoice->nextdate = $recurrentinvoice->nextdate; $do_recurrentinvoice->recurrence = $recurrentinvoice->recurrence; $do_recurrentinvoice->recurrencetype = $recurrentinvoice->recurrencetype; $do_recurrentinvoice->add(); $do_recurrentinvoice->free(); } } //recurrentinvoice import ends // Payment Log import $paymentlog_cnt = count($invoice->paymentlog); if ($paymentlog_cnt) { for ($paymentlog_cnt_i = 0; $paymentlog_cnt_i < $paymentlog_cnt; $paymentlog_cnt_i++) { $do_paymentlog = new PaymentLog(); $paymentlog = $invoice->paymentlog[$paymentlog_cnt_i]; $do_paymentlog->timestamp = $paymentlog->timestamp; $do_paymentlog->idinvoice = $lastInsertedInvoiceId; $do_paymentlog->amount = $paymentlog->amount; $do_paymentlog->payment_type = $paymentlog->payment_type; $do_paymentlog->ref_num = $paymentlog->ref_num; $do_paymentlog->date_added = $paymentlog->date_added; $do_paymentlog->add(); $lastInsertedPaymentLogId = $do_paymentlog->getPrimaryKeyValue(); //payment_invoice : Payment Invoice import $paymentinv_cnt = count($paymentlog->payment_invoice); if ($paymentinv_cnt) { for ($paymentinv_cnt_i = 0; $paymentinv_cnt_i < $paymentinv_cnt; $paymentinv_cnt_i++) { $do_payment_invoice = new PaymentInvoice(); $paymentinvoice = $paymentlog->payment_invoice[$paymentinv_cnt_i]; $do_payment_invoice->idpayment = $lastInsertedPaymentLogId; $do_payment_invoice->idinvoice = $lastInsertedInvoiceId; $do_payment_invoice->amount = $paymentinvoice->amount; $do_payment_invoice->add(); $do_payment_invoice->free(); } } // payment_invoice import ends //paymentlog_extra_amount import $paymentlog_ext_amt_cnt = count($paymentlog->paymentlog_extra_amount); if ($paymentlog_ext_amt_cnt) { for ($paymentlog_ext_amt_cnt_i = 0; $paymentlog_ext_amt_cnt_i < $paymentlog_ext_amt_cnt; $paymentlog_ext_amt_cnt_i++) { $paymentlog_extra_amount = $paymentlog->paymentlog_extra_amount[$paymentlog_ext_amt_cnt_i]; $q = new sqlQuery($GLOBALS['conx']); $query = "INSERT INTO paymentlog_extra_amount (`idpaymentlog`,`extra_amt`,`iduser`)\n VALUES (" . $lastInsertedPaymentLogId . "," . $paymentlog_extra_amount->extra_amt . "," . $_SESSION['do_User']->iduser . ")\n "; $q->query($query); $q->free(); } } // paymentlog_extra_amount import ends $do_paymentlog->free(); } } //Payment Log import ends $msg_inv = ", Invoices"; $do_invoice->free(); } } // Invoice import ends /************************************************************************************************************************/ $do_contact->free(); } $msg = "Your Contacts" . $msg_inv; } /** *Company insert */ $compani_id = array(); $lastInsertedCompani_id = array(); $companies_cnt = count($xml->companies); if ($companies_cnt) { for ($i = 0; $i < $companies_cnt; $i++) { $do_company = new Company(); $company = $xml->companies[$i]; array_push($compani_id, "{$company->idcompany}"); // $do_company->idcompany=$company->idcompany; $do_company->name = $company->name; $do_company->iduser = $_SESSION['do_User']->iduser; $do_company->add(); array_push($lastInsertedCompani_id, $do_company->getPrimaryKeyValue()); $do_company->free(); } } //tasks which are neither associated with Contact nor with project $task_wop_cnt = count($xml->task_without_project); if ($task_wop_cnt) { for ($i = 0; $i < $task_wop_cnt; $i++) { $do_task = new Task(); $task_wop = $xml->task_without_project[$i]; $do_task->task_description = $task_wop->task_description; $do_task->due_date = $task_wop->due_date; $do_task->category = $task_wop->category; $do_task->iduser = $_SESSION['do_User']->iduser; $do_task->due_date_dateformat = $task_wop->due_date_dateformat; $do_task->status = $task_wop->status; $do_task->date_completed = $task_wop->date_completed; $do_task->idcontact = $task_wop->idcontact; //it would be 0 since not associated with contact. $do_task->from_note = $task_wop->from_note; $do_task->is_sp_date_set = $task_wop->is_sp_date_set; $do_task->task_category = $task_wop->task_category; $do_task->add(); $do_task->free(); } $msg .= ", Tasks"; } //tasks which are associated with Project $prj_cnt = count($xml->project); if ($prj_cnt) { for ($i = 0; $i < $prj_cnt; $i++) { $do_project = new Project(); $project = $xml->project[$i]; $do_project->iduser = $_SESSION['do_User']->iduser; $do_project->name = $project->name; $do_project->end_date_dateformat = $project->end_date_dateformat; $do_project->idcompany = $project->idcompany; $do_project->status = $project->status; $do_project->effort_estimated_hrs = $project->effort_estimated_hrs; $do_project->is_public = $project->is_public; $do_project->add(); $lastInsertedPrjId = $do_project->getPrimaryKeyValue(); $pt_cnt = count($project->project_task); if ($pt_cnt) { for ($pt_cnt_i = 0; $pt_cnt_i < $pt_cnt; $pt_cnt_i++) { $do_task = new Task(); $project_task = $project->project_task[$pt_cnt_i]; $do_task->task_description = $project_task->task_description; $do_task->due_date = $project_task->due_date; $do_task->category = $project_task->category; $do_task->iduser = $_SESSION['do_User']->iduser; $do_task->due_date_dateformat = $project_task->due_date_dateformat; $do_task->status = $project_task->status; $do_task->date_completed = $project_task->date_completed; $do_task->idcontact = $project_task->idcontact; $do_task->from_note = $project_task->from_note; $do_task->is_sp_date_set = $project_task->is_sp_date_set; $do_task->task_category = $project_task->task_category; $do_task->add(); $lastInsertedTskId = $do_task->getPrimaryKeyValue(); $q = new sqlQuery($GLOBALS['conx']); if ($project_task->progress == '') { $project_task_progress = 0; } else { $project_task_progress = $project_task->progress; } $sql = "INSERT INTO \n\t\t\tproject_task (idtask, idproject, progress,drop_box_code,priority,hrs_work_expected) \n\t\t\tVALUES ({$lastInsertedTskId},{$lastInsertedPrjId},{$project_task_progress},{$project_task->drop_box_code},{$project_task->priority},{$project_task->hrs_work_expected})"; echo $sql; echo "<br>"; $q->query($sql); $lastInsertedPrjTaskId = $q->getInsertId('project_task', 'idproject_task'); $pd_cnt = count($project_task->project_discuss); if ($pd_cnt) { for ($pd_cnt_i = 0; $pd_cnt_i < $pd_cnt; $pd_cnt_i++) { $do_project_discuss = new ProjectDiscuss(); $project_discuss = $project_task->project_discuss[$pd_cnt_i]; $do_project_discuss->idproject_task = $lastInsertedPrjTaskId; $do_project_discuss->idtask = $lastInsertedTskId; $do_project_discuss->idproject = $lastInsertedPrjId; $do_project_discuss->discuss = $project_discuss->discuss; $do_project_discuss->date_added = $project_discuss->date_added; $do_project_discuss->document = $project_discuss->document; $do_project_discuss->iduser = $_SESSION['do_User']->iduser; $do_project_discuss->drop_box_sender = $project_discuss->drop_box_sender; $do_project_discuss->priority = $project_discuss->priority; $do_project_discuss->hours_work = $project_discuss->hours_work; $do_project_discuss->discuss_edit_access = $project_discuss->discuss_edit_access; $do_project_discuss->type = $project_discuss->type; $do_project_discuss->add(); $do_project_discuss->free(); } } // $do_project_task->free(); $do_task->free(); } } $do_project->free(); } $compani_id_cnt = count($compani_id); if ($compani_id_cnt) { $j = 0; foreach ($compani_id as $cmp_id) { $q = new sqlQuery($GLOBALS['conx']); $sql = "UPDATE contact SET idcompany ={$lastInsertedCompani_id[$j]} WHERE iduser={$_SESSION['do_User']->iduser} AND idcompany ={$cmp_id}"; $q->query($sql); $sql1 = "UPDATE invoice SET idcompany ={$lastInsertedCompani_id[$j]} WHERE iduser={$_SESSION['do_User']->iduser} AND idcompany ={$cmp_id}"; $q->query($sql1); $sql2 = "UPDATE project SET idcompany ={$lastInsertedCompani_id[$j]} WHERE iduser={$_SESSION['do_User']->iduser} AND idcompany ={$cmp_id}"; $q->query($sql2); $q->free(); $j++; } } $do_create_usrtbl = new ContactView(); $do_create_usrtbl->rebuildContactUserTable($_SESSION['do_User']->iduser); $msg .= " and Projects have been imported successfully."; } } else { $msg = "Sorry! The data could not be imported."; } } else { $msg = "Sorry! Could not find the uploaded file."; } } $_SESSION['in_page_message'] = $msg; }