undefined variable on CI controller - php

I have some issue on $PYParentID for the following code. I'll always get and undefined variable error that showes up when I execute my post action. Am I missing something?
Error message
Undefined variable: PYParentID loc: C:\xampp\htdocs\kawaguchi\apps\modules\Account\controllers\D‌​ownPaymentAp.php line: 301
$this->db->insert(T_AccountPayableHeader, $PYHeader);
//print_r($PYParentID);die;
$PYParentID = $this->db->insert_id();
$detailPayment = $detail->first_row("array");
$payableID = $vendor->first_row("array");
$PYDetail = array(
T_AccountPayableDetail_RecordStatus => "",
T_AccountPayableDetail_RecordUpdatedOn => date('Y-m-d g:i:s',now()),
T_AccountPayableDetail_RecordUpdatedBy => $this->ezrbac->getCurrentUserID(),
T_AccountPayableDetail_RecordUpdatedAt => $this->input->ip_address(),
T_AccountPayableDetail_PRI => $PYParentID,
T_AccountPayableDetail_DocTypeID => $headerData[T_MasterDataDownPayment_DocName],
T_AccountPayableDetail_DocNo => $headerData[T_MasterDataDownPayment_DocNo],
T_AccountPayableDetail_DocDate => $headerData[T_MasterDataDownPayment_DocDate],
T_AccountPayableDetail_DueDate => "",
T_AccountPayableDetail_DaysOverdue => "",
T_AccountPayableDetail_InvoiceAmount => $headerData[T_MasterDataDownPayment_Amount],
T_AccountPayableDetail_AmountPaid => $headerData[T_MasterDataDownPayment_TotalAmount],
T_AccountPayableDetail_AmountOutstanding => "",
T_AccountPayableDetail_Bank => $headerData[T_MasterDataDownPayment_BankAccountNo],
T_AccountPayableDetail_SchedulePayment => "",
T_AccountPayableDetail_PONo => $detailPayment[T_MasterDataDownPaymentDetail_PoNo],
);

Related

How to insert customBatch in Google Content API (Shopping)

I am trying to insert products on Google Merchant Center. I am currently using Google API PHP client, and I am unable to find toSimpleObject function in any of the class and class extending it.
$this->service = new Google_Service_ShoppingContent($client);
$product = array("batchId" => $batchID,
"merchantId" => $this->googleapi->merchantID,
"method" => "insert",
"product" => array(
"kind" => "content#product",
"offerId" => $skuDetails['SKU'],
"title" => $skuDetails['TITLE'],
"description" => $skuDetails['DESCRIPTION'],
"imageLink" => $skuDetails['IMAGE'],
"contentLanguage" => "en",
"targetCountry" => "US",
"channel" => "online",
"availability" => ($skuDetails['QUANTITY'] > 0)?'in stock':'out of stock',
"brand" => $skuDetails['BRAND'],
"condition" => $skuDetails['CONDITION'],
"minHandlingTime" => $skuDetails['HANDLING_TIME'],
"ageGroup" => 'adult',
"maxHandlingTime" => ($skuDetails['HANDLING_TIME'] + 2),
"googleProductCategory" => (empty($skuDetails['CATEGORYID']))?$skuDetails['CATEGORYPATH']:$skuDetails['CATEGORYID'],
"price" => [
"value" => $price['lp'],
"currency" => "USD"
]
)
);
$productObject = new Google_Service_ShoppingContent_ProductsCustomBatchRequest();
$productObject->setEntries($product);
$result = $this->service->products->custombatch($productObject);
Error:
An uncaught Exception was encountered
Type: Error
Message: Call to undefined method Google_Service_ShoppingContent_ProductsCustomBatchRequest::toSimpleObject()
Line Number: 108
Backtrace:
File: vendor/google/apiclient-services/src/Google/Service/ShoppingContent/Resource/Products.php
Line: 40
Function: call
You should be using Google_Service_ShoppingContent_Product to insert data to your product instance then you can use custombatch to upload it
$product = new Google_Service_ShoppingContent_Product();
$product->setId($id);
$product->setTitle($title);

php - Cannot redeclare class apiException Google+ api

I am getting this error:
Fatal error: Cannot redeclare class apiException in E:\Applications\xampp\htdocs\onlineshop\application\third_party\google-login-api\apiClient.php on line 367
What does it mean?
What should I do to fix it? Add exception in my controller or anything else?
Please help me.
Here's my code
public function gplus_login(){
if(isset($_GET['code'])){
$this->googleplus->getAuthenticate();
$user_profile2 = $this->googleplus->getUserInfo();
$username2 = $user_profile2['email'];
$password2 = $user_profile2['email'];
$member_status2 = 1;
$result2 = $this->m_member->check_login($username2, $password2, $member_status2);
if($result2 == TRUE){
$user2 = $this->m_member->by_id(array('member_username'=>$username2));
$newdata2 = (array(
'username_front' => $username2,
'member_id' => $user2->member_id,
'member_fullname' => $user2->member_fullname,
'logged_in_front' => TRUE
));
$this->session->set_userdata($newdata2);
redirect('home');
}
else{
$data2 = array(
'member_gplus_id' => $user_profile2["id"],
'member_fullname' => $user_profile2["name"],
'member_email' => $user_profile2["email"],
'member_username' => $user_profile2["email"],
'member_password' => md5($user_profile2["email"]),
'member_status' => 1,
'member_isreseller' => 0,
'member_login' => 0,
'created_by' => $user_profile2["name"],
'created_on' => date('Y-m-d H:i:s'));
$this->m_member->insert($data2);
$user3 = $this->m_member->by_id(array('member_username'=>$username2));
$newdata3 = (array(
'username_front' => $username2,
'member_id' => $user3->member_id,
'member_fullname' => $user3->member_fullname,
'logged_in_front' => TRUE
));
$this->session->set_userdata($newdata3);
redirect("account");
}
}
else{
$this->session->set_flashdata("Login Error");
redirect("home");
}
}
I think apiException has been included more than 1 time in source code.
Make sure its being used only one time in your source code.

Attributes in a SOAP request with php

I'm trying to create this XML in a SOAP call
<ns1:NameID type="INTERNAL">831392</ns1:NameID>
<ns1:NameMembership primary="true" displaySequence="1">
<ns2:membershipType>PFS</ns2:membershipType>
<ns2:membershipNumber>222222E</ns2:membershipNumber>
<ns2:membershipLevel>SILVER</ns2:membershipLevel>
<ns2:memberName>Luis Fernandez </ns2:memberName>
</ns1:NameMembership>
I don't know how to add the primarykey and displaySequence` attributes. I trying to create something like this:
$parameters = array("NameID" => array("_" => "831392", "type" => "INTERNAL"),
"NameMembership" => array("_" => array(
"membershipLevel" => "SILVER",
"memberName" => "Luis Fernandez",
"membershipType" => "PFS",
"membershipNumber" => "222222E"), "primary" => true, "displaySequence" => 1
));
But it doesn't work. It returns this code:
<ns1:InsertGuestCardRequest>
<ns1:NameID type="INTERNAL">831392</ns1:NameID>
<ns1:NameMembership primary="true" displaySequence="1"/>
</ns1:InsertGuestCardRequest>
Can anyone help me to find what am I doing wrong?
I got it! Thanks!
$parameters = array("NameID" => array("_" => "831392", "type" => "INTERNAL"),
"NameMembership" => array(
"membershipLevel" => "SILVER",
"memberName" => "Luis Fernandez",
"membershipType" => "PFS",
"membershipNumber" => "222222E",
"primary" => true,
"displaySequence" => 1
));

Can't add {message} variable to order_conf mail template

On my classes/PaymentModule.php I have declared '{message}' => $customer_message (between other vars) but still my customers see Wiadomość: {message}
in mails which they recieved.
What do I wrong? Maybe declare {message} var in PaymentModule.php is not enough?
UDPATE:
this is standard PaymentModule.php code in Prestashop 1.6.2.1 with added {message} variable:
$customer_message = $order->getFirstMessage();
$data = array(
'{firstname}' => $this->context->customer->firstname,
'{lastname}' => $this->context->customer->lastname,
'{email}' => $this->context->customer->email,
'{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n"),
'{invoice_block_txt}' => $this->_getFormatedAddress($invoice, "\n"),
'{delivery_block_html}' => $this->_getFormatedAddress($delivery, '<br />', array(
'firstname' => '<span style="font-weight:bold;">%s</span>',
'lastname' => '<span style="font-weight:bold;">%s</span>'
)),
'{invoice_block_html}' => $this->_getFormatedAddress($invoice, '<br />', array(
'firstname' => '<span style="font-weight:bold;">%s</span>',
'lastname' => '<span style="font-weight:bold;">%s</span>'
)),
'{delivery_company}' => $delivery->company,
'{delivery_firstname}' => $delivery->firstname,
'{delivery_lastname}' => $delivery->lastname,
'{delivery_address1}' => $delivery->address1,
'{delivery_address2}' => $delivery->address2,
'{delivery_city}' => $delivery->city,
'{delivery_postal_code}' => $delivery->postcode,
'{delivery_country}' => $delivery->country,
'{delivery_state}' => $delivery->id_state ? $delivery_state->name : '',
'{delivery_phone}' => ($delivery->phone) ? $delivery->phone : $delivery->phone_mobile,
'{delivery_other}' => $delivery->other,
'{invoice_company}' => $invoice->company,
'{invoice_vat_number}' => $invoice->vat_number,
'{invoice_firstname}' => $invoice->firstname,
'{invoice_lastname}' => $invoice->lastname,
'{invoice_address2}' => $invoice->address2,
'{invoice_address1}' => $invoice->address1,
'{invoice_city}' => $invoice->city,
'{invoice_postal_code}' => $invoice->postcode,
'{invoice_country}' => $invoice->country,
'{invoice_state}' => $invoice->id_state ? $invoice_state->name : '',
'{invoice_phone}' => ($invoice->phone) ? $invoice->phone : $invoice->phone_mobile,
'{invoice_other}' => $invoice->other,
'{order_name}' => $order->getUniqReference(),
'{date}' => Tools::displayDate(date('Y-m-d H:i:s'), null, 1),
'{carrier}' => ($virtual_product || !isset($carrier->name)) ? Tools::displayError('No carrier') : $carrier->name,
'{payment}' => Tools::substr($order->payment, 0, 32),
'{products}' => $product_list_html,
'{products_txt}' => $product_list_txt,
'{discounts}' => $cart_rules_list_html,
'{discounts_txt}' => $cart_rules_list_txt,
'{total_paid}' => Tools::displayPrice($order->total_paid, $this->context->currency, false),
'{total_products}' => Tools::displayPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? $order->total_products : $order->total_products_wt, $this->context->currency, false),
'{total_discounts}' => Tools::displayPrice($order->total_discounts, $this->context->currency, false),
'{total_shipping}' => Tools::displayPrice($order->total_shipping, $this->context->currency, false),
'{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $this->context->currency, false),
'{message}' => $customer_message,
'{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $this->context->currency, false));
In order_conf.html:
...
Wiadomość: {message}
....
ou should use below function if not already using it.
Example:
$id_lang = (int)$this->context->language->id;
$heading = Mail::l('Message Received', (int)$id_lang);
Mail::Send(
(int)$id_lang,
'order_conf',
$heading,
$data,
$this->context->customer->email,
null,
null,
$this->context->shop->name,
null,
null,
_PS_MODULE_DIR_.'mymodule/mail/',
false,
1
);
mail template should be located in 'mymodule/mail/en/order_conf.html' make languages directories according to your languages like /en , /fr, /nl
With Prestashop 1.7, I’ve tested with
'{message}' => 'hello',
And it displays in email : hello
Are you sure you have something in $customer_message ?
It can be more complicated with some variables. Have a look at $product_list_html
You will see it is an array and there is :
$product_list_html = $this->getEmailTemplateContent('order_conf_product_list.tpl', Mail::TYPE_HTML, $product_var_tpl_list);
It uses an other template to build the list of product (order_conf_product_list.tpl)
I know that post is 3 years old but the solution is not using
$customer_message
but
$customer_message->message

Add EC22 security rule via AWS PHP SDK2

The script is allocating an IP but I'm not seeing the security rule in the GUI. No errors are being thrown. Here is the code snippet I am using:
$config = aws_setup();
$ec2Client = \Aws\Ec2\Ec2Client::factory($config);
$gmodel = $ec2Client->allocateAddress();
$args = array('GroupName' => 'www', 'IpPermissions' => array(array('IpProtocol' => 'tcp', 'FromPort' => 22, 'ToPort' => 22)), 'IpRanges' => array('CidrIp' => array($gmodel->get('PublicIp') . '/32')));
$ec2Client->authorizeSecurityGroupIngress($args);
Got the right syntax for the 'args' variable:
$args = array('GroupName' => 'www', 'IpPermissions' => array(array('IpProtocol' => 'tcp', 'FromPort' => 22, 'ToPort' => 22, 'IpRanges' => array(array('CidrIp' => $gmodel->get('PublicIp') . '/32')))));
The rule is now being added to the security group.

Categories