| Line 168... |
Line 168... |
| 168 |
if order.insurer > 0:
|
168 |
if order.insurer > 0:
|
| 169 |
insuranceDetail = InsuranceDetailForOrder()
|
169 |
insuranceDetail = InsuranceDetailForOrder()
|
| 170 |
insuranceDetail.dob = t_order.dob
|
170 |
insuranceDetail.dob = t_order.dob
|
| 171 |
insuranceDetail.guardianName = t_order.guardianName
|
171 |
insuranceDetail.guardianName = t_order.guardianName
|
| 172 |
insuranceDetail.order = order
|
172 |
insuranceDetail.order = order
|
| - |
|
173 |
if t_order.freebieItemId:
|
| - |
|
174 |
order.freebieItemId = t_order.freebieItemId
|
| 173 |
return order
|
175 |
return order
|
| 174 |
|
176 |
|
| 175 |
def create_transaction(t_transaction):
|
177 |
def create_transaction(t_transaction):
|
| 176 |
t_orders = t_transaction.orders
|
178 |
t_orders = t_transaction.orders
|
| 177 |
if not t_orders:
|
179 |
if not t_orders:
|
| Line 565... |
Line 567... |
| 565 |
html_tr += "<td align='center'>" + ("%.0f" % lineitem.quantity) + "</td>"
|
567 |
html_tr += "<td align='center'>" + ("%.0f" % lineitem.quantity) + "</td>"
|
| 566 |
html_tr += "<td align='center'> Rs. " + ("%.2f" % lineitem.unit_price) + "</td>"
|
568 |
html_tr += "<td align='center'> Rs. " + ("%.2f" % lineitem.unit_price) + "</td>"
|
| 567 |
html_tr += "<td align='center'> Rs. " + ("%.2f" % lineitem_total_price) + "</td></tr>"
|
569 |
html_tr += "<td align='center'> Rs. " + ("%.2f" % lineitem_total_price) + "</td></tr>"
|
| 568 |
total_amount += lineitem_total_price
|
570 |
total_amount += lineitem_total_price
|
| 569 |
html_table += html_tr
|
571 |
html_table += html_tr
|
| - |
|
572 |
if order.freebieItemId:
|
| - |
|
573 |
catalog_client = CatalogClient().get_client()
|
| - |
|
574 |
item = catalog_client.getItem(order.freebieItemId)
|
| - |
|
575 |
html_table += "<tr><td align='center'></td><td style='font-style:italic;'> Free Item: "+item.brand + " " + item.modelName + " " + item.modelNumber+"</td><td align='center'></td><td align='center'></td><td align='center'></td><td align='center'></td></tr>"
|
| 570 |
if order.insurer:
|
576 |
if order.insurer:
|
| 571 |
html_table += "<tr><td colspan=6> </td></tr>"
|
577 |
html_table += "<tr><td colspan=6> </td></tr>"
|
| 572 |
html_table += "<tr><td align='center'></td><td style='font-style:italic;'>Insured Against Theft for 1 Year. <a href='http://www.saholic.com/static/insurance-terms'>Know More</a></td><td align='center'></td><td align='center'></td><td align='center'></td>"
|
578 |
html_table += "<tr><td align='center'></td><td style='font-style:italic;'>Insured Against Theft for 1 Year. <a href='http://www.saholic.com/static/insurance-terms'>Know More</a></td><td align='center'></td><td align='center'></td><td align='center'></td>"
|
| 573 |
html_table += "<td align='center'>" + str(order.insuranceAmount) + "</td></tr>"
|
579 |
html_table += "<td align='center'>" + str(order.insuranceAmount) + "</td></tr>"
|
| 574 |
total_amount += order.insuranceAmount
|
580 |
total_amount += order.insuranceAmount
|
| Line 1170... |
Line 1176... |
| 1170 |
inventoryClient.reduceReservationCount(itemId, order.fulfilmentWarehouseId, sourceId, order.id, order.lineitems[0].quantity)
|
1176 |
inventoryClient.reduceReservationCount(itemId, order.fulfilmentWarehouseId, sourceId, order.id, order.lineitems[0].quantity)
|
| 1171 |
inventoryClient.reserveItemInWarehouse(itemId, warehouse.id, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
1177 |
inventoryClient.reserveItemInWarehouse(itemId, warehouse.id, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
|
| 1172 |
order.fulfilmentWarehouseId = warehouse.id
|
1178 |
order.fulfilmentWarehouseId = warehouse.id
|
| 1173 |
break
|
1179 |
break
|
| 1174 |
|
1180 |
|
| 1175 |
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
|
1181 |
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, freebieWarehouseId, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
|
| 1176 |
if jacketNumber is None or jacketNumber <= 0:
|
1182 |
if jacketNumber is None or jacketNumber <= 0:
|
| 1177 |
raise TransactionServiceException(110, "Invalid jacket number")
|
1183 |
raise TransactionServiceException(110, "Invalid jacket number")
|
| 1178 |
|
1184 |
|
| 1179 |
if billedBy is None or billedBy.strip() == "":
|
1185 |
if billedBy is None or billedBy.strip() == "":
|
| 1180 |
raise TransactionServiceException(110, "Invalid Biller")
|
1186 |
raise TransactionServiceException(110, "Invalid Biller")
|
| 1181 |
|
1187 |
|
| 1182 |
order = Order.get_by(id=orderId)
|
1188 |
order = Order.get_by(id=orderId)
|
| 1183 |
if not order:
|
1189 |
if not order:
|
| 1184 |
raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
|
1190 |
raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
|
| 1185 |
|
1191 |
|
| - |
|
1192 |
'''
|
| - |
|
1193 |
First checking whether freebie can be billed or not otherwise wont proceed.
|
| - |
|
1194 |
'''
|
| - |
|
1195 |
if billingType == BillingType.OURS:
|
| - |
|
1196 |
if order.freebieItemId is not None or order.freebieItemId>0:
|
| - |
|
1197 |
if freebieWarehouseId is not None or freebieWarehouseId >0:
|
| - |
|
1198 |
try:
|
| - |
|
1199 |
warehouse_client = WarehouseClient().get_client()
|
| - |
|
1200 |
inventoryItem = warehouse_client.scanfreebie(orderId, order.freebieItemId, freebieWarehouseId, ScanType.SALE);
|
| - |
|
1201 |
|
| - |
|
1202 |
attr = Attribute()
|
| - |
|
1203 |
attr.orderId = orderId
|
| - |
|
1204 |
attr.name = "freebie_tp"
|
| - |
|
1205 |
attr.value = str(inventoryItem.unitPrice)
|
| - |
|
1206 |
|
| - |
|
1207 |
attr1 = Attribute()
|
| - |
|
1208 |
attr1.orderId = orderId
|
| - |
|
1209 |
attr1.name = "freebie_vendor"
|
| - |
|
1210 |
attr1.value = str(inventoryItem.supplierId)
|
| - |
|
1211 |
|
| - |
|
1212 |
inventory_client = InventoryClient().get_client()
|
| - |
|
1213 |
warehouse = inventory_client.getWarehouse(freebieWarehouseId)
|
| - |
|
1214 |
item_pricing = inventory_client.getItemPricing(order.freebieItemId, warehouse.vendor.id)
|
| - |
|
1215 |
#lineitem.transfer_price = item_pricing.transferPrice
|
| - |
|
1216 |
attr2 = Attribute()
|
| - |
|
1217 |
attr2.orderId = orderId
|
| - |
|
1218 |
attr2.name = "freebie_nlc"
|
| - |
|
1219 |
attr2.value = str(item_pricing.nlc)
|
| - |
|
1220 |
except Exception as e:
|
| - |
|
1221 |
print sys.exc_info()[0]
|
| - |
|
1222 |
print e.message
|
| - |
|
1223 |
raise Exception('Error in billing freebie for warehouseId ' + str(freebieWarehouseId))
|
| 1186 |
|
1224 |
|
| 1187 |
lineitem = order.lineitems[0]
|
1225 |
lineitem = order.lineitems[0]
|
| 1188 |
item_id = lineitem.item_id
|
1226 |
item_id = lineitem.item_id
|
| 1189 |
|
1227 |
|
| 1190 |
# inventoryClient = InventoryClient().get_client()
|
1228 |
# inventoryClient = InventoryClient().get_client()
|
| Line 3525... |
Line 3563... |
| 3525 |
<div>
|
3563 |
<div>
|
| 3526 |
<p>Dear Customer,</p>
|
3564 |
<p>Dear Customer,</p>
|
| 3527 |
<p>
|
3565 |
<p>
|
| 3528 |
We are pleased to inform that we have shipped the order: $order_id for your product $product_name on $shipping_datetime.
|
3566 |
We are pleased to inform that we have shipped the order: $order_id for your product $product_name on $shipping_datetime.
|
| 3529 |
The shipment will be delivered to you via $courier_name Courier Service vide AWB# $awb.
|
3567 |
The shipment will be delivered to you via $courier_name Courier Service vide AWB# $awb.
|
| - |
|
3568 |
$freebie_text
|
| 3530 |
</p>
|
3569 |
</p>
|
| 3531 |
<p>
|
3570 |
<p>
|
| 3532 |
Expected delivery date for your order is $expected_delivery_date.
|
3571 |
Expected delivery date for your order is $expected_delivery_date.
|
| 3533 |
<br/>
|
3572 |
<br/>
|
| 3534 |
$otg_text
|
3573 |
$otg_text
|
| Line 3577... |
Line 3616... |
| 3577 |
otg_text = 'Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> We apologize in advance for the expected delay from our initial promised delivery date of ' + promised_delivery_date + '. Your will receive a Gift Voucher Code at time of delivery based on the actual delay. You can use the same to buy any Mobile, Camera, Laptop, Tablet, Accessory or Mobile/DTH Recharge from our website.'
|
3616 |
otg_text = 'Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> We apologize in advance for the expected delay from our initial promised delivery date of ' + promised_delivery_date + '. Your will receive a Gift Voucher Code at time of delivery based on the actual delay. You can use the same to buy any Mobile, Camera, Laptop, Tablet, Accessory or Mobile/DTH Recharge from our website.'
|
| 3578 |
elif new_expected_delivery_timestamp < order.promised_delivery_time:
|
3617 |
elif new_expected_delivery_timestamp < order.promised_delivery_time:
|
| 3579 |
otg_text = 'We are happy to inform you that we expect to deliver your order before time. Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> Please note, compensation for delay (If Any) will be computed from the initial promised delivery date of ' + promised_delivery_date + '.'
|
3618 |
otg_text = 'We are happy to inform you that we expect to deliver your order before time. Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> Please note, compensation for delay (If Any) will be computed from the initial promised delivery date of ' + promised_delivery_date + '.'
|
| 3580 |
else:
|
3619 |
else:
|
| 3581 |
otg_text = 'Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> We are committed to deliver your order by our initial promised delivery date of ' + promised_delivery_date + '.'
|
3620 |
otg_text = 'Your order is covered under our <a href="http://www.saholic.com/static/on-time-guarantee">On Time Guarantee; We Pay if we Delay.</a> We are committed to deliver your order by our initial promised delivery date of ' + promised_delivery_date + '.'
|
| - |
|
3621 |
|
| - |
|
3622 |
freebie_text = "<br/>"
|
| - |
|
3623 |
if order.freebieItemId:
|
| - |
|
3624 |
catalog_client = CatalogClient().get_client()
|
| - |
|
3625 |
item = catalog_client.getItem(order.freebieItemId)
|
| - |
|
3626 |
freebie_text = freebie_text = "We have also sent you " + item.brand + " " + item.modelName + item.modelNumber +" as promised"
|
| - |
|
3627 |
else:
|
| - |
|
3628 |
freebie_orderId = get_order_attribute_value(order.id, "freebieOrderId")
|
| - |
|
3629 |
if freebie_orderId != "":
|
| - |
|
3630 |
line_items = get_line_items_for_order(int(freebie_orderId))
|
| - |
|
3631 |
freebie_text = freebie_text + "Due to some unavoidable issues in procuring " +line_items(0).brand + " " + line_items(0).model_name + " " + line_items(0).model_number
|
| - |
|
3632 |
freebie_text = freebie_text + " Your freebie will be sent as a separate order with OrderId : " + freebie_orderId + "<br/> You can track the status of this order from My Orders section in saholic.com"
|
| 3582 |
|
3633 |
|
| 3583 |
info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone, source_name = source_name, otg_text = otg_text)
|
3634 |
info = dict(order_id = order.id, product_name = product, shipping_datetime = shipping_date, awb = order.airwaybill_no, expected_delivery_date = new_expected_delivery_date, courier_name = provider_name, courier_phone = provider_phone, source_name = source_name, otg_text = otg_text, freebie_text = freebie_text)
|
| 3584 |
return Template(html).substitute(info)
|
3635 |
return Template(html).substitute(info)
|
| 3585 |
|
3636 |
|
| 3586 |
def enqueue_shipping_confirmation_email(order):
|
3637 |
def enqueue_shipping_confirmation_email(order):
|
| 3587 |
# Calling helper service on production
|
3638 |
# Calling helper service on production
|
| 3588 |
helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
|
3639 |
helperClient = HelperClient(host_key = "helper_service_server_host_prod").get_client()
|
| Line 4730... |
Line 4781... |
| 4730 |
invNum = str(recharge.invoiceNumber)
|
4781 |
invNum = str(recharge.invoiceNumber)
|
| 4731 |
billingTime = recharge.responseTime
|
4782 |
billingTime = recharge.responseTime
|
| 4732 |
payMethod = recharge.payMethod
|
4783 |
payMethod = recharge.payMethod
|
| 4733 |
return __printRechargeInvoice(filename, operator, amount, telNum, customerName, invNum, billingTime, payMethod)
|
4784 |
return __printRechargeInvoice(filename, operator, amount, telNum, customerName, invNum, billingTime, payMethod)
|
| 4734 |
|
4785 |
|
| - |
|
4786 |
def split_freebie_order(order_id, splitReason, shippingDate):
|
| - |
|
4787 |
order = get_order(order_id)
|
| - |
|
4788 |
freebie_order = Order()
|
| - |
|
4789 |
|
| - |
|
4790 |
freebie_order.transaction = order.transaction
|
| - |
|
4791 |
|
| - |
|
4792 |
freebie_order.customer_id = order.customer_id
|
| - |
|
4793 |
freebie_order.customer_email = order.customer_email
|
| - |
|
4794 |
freebie_order.customer_name = order.customer_name
|
| - |
|
4795 |
freebie_order.customer_pincode = order.customer_pincode
|
| - |
|
4796 |
freebie_order.customer_address1 = order.customer_address1
|
| - |
|
4797 |
freebie_order.customer_address2 = order.customer_address2
|
| - |
|
4798 |
freebie_order.customer_city = order.customer_city
|
| - |
|
4799 |
freebie_order.customer_state = order.customer_state
|
| - |
|
4800 |
freebie_order.customer_mobilenumber = order.customer_mobilenumber
|
| - |
|
4801 |
freebie_order.total_weight = order.total_weight
|
| - |
|
4802 |
freebie_order.total_amount = 0.01
|
| - |
|
4803 |
freebie_order.status = OrderStatus.SUBMITTED_FOR_PROCESSING
|
| - |
|
4804 |
freebie_order.statusDescription = "In Process";
|
| - |
|
4805 |
freebie_order.created_timestamp = datetime.datetime.now()
|
| - |
|
4806 |
freebie_order.cod = 0
|
| - |
|
4807 |
freebie_order.orderType = OrderType.B2C
|
| - |
|
4808 |
freebie_order.pickupStoreId = 0
|
| - |
|
4809 |
freebie_order.otg = 0
|
| - |
|
4810 |
freebie_order.insurer = 0
|
| - |
|
4811 |
freebie_order.insuranceAmount = 0
|
| - |
|
4812 |
|
| - |
|
4813 |
logistics_client = LogisticsClient().get_client()
|
| - |
|
4814 |
logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, 1, DeliveryType.PREPAID, PickUpType.COURIER)
|
| - |
|
4815 |
freebie_order.logistics_provider_id = logistics_info.providerId;
|
| - |
|
4816 |
freebie_order.tracking_id = logistics_info.airway_billno
|
| - |
|
4817 |
freebie_order.airwaybill_no = logistics_info.airway_billno
|
| - |
|
4818 |
freebie_order.expected_delivery_time = (to_py_date(shippingDate)+datetime.timedelta(days=logistics_info.deliveryTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
|
| - |
|
4819 |
freebie_order.promised_delivery_time = order.promised_delivery_time
|
| - |
|
4820 |
freebie_order.expected_shipping_time = to_py_date(shippingDate)
|
| - |
|
4821 |
freebie_order.promised_shipping_time = order.promised_shipping_time
|
| - |
|
4822 |
|
| - |
|
4823 |
inventory_client = InventoryClient().get_client()
|
| - |
|
4824 |
item_availability = inventory_client.getItemAvailabilityAtLocation(freebie_order.lineitems[0].item_id,1)
|
| - |
|
4825 |
freebie_order.warehouse_id = item_availability[2]
|
| - |
|
4826 |
freebie_order.fulfillmentWarehouseId = item_availability[0]
|
| - |
|
4827 |
|
| - |
|
4828 |
catalog_client = CatalogClient().get_client()
|
| - |
|
4829 |
item = catalog_client.getItem(order.freebieItemId)
|
| - |
|
4830 |
freebie_order.total_weight = item.weight
|
| - |
|
4831 |
|
| - |
|
4832 |
litem = LineItem()
|
| - |
|
4833 |
litem.item_id = item.id
|
| - |
|
4834 |
litem.productGroup = item.productGroup
|
| - |
|
4835 |
litem.brand = item.brand
|
| - |
|
4836 |
litem.model_number = item.modelNumber
|
| - |
|
4837 |
litem.model_name = item.modelName
|
| - |
|
4838 |
litem.color = item.color
|
| - |
|
4839 |
litem.extra_info = "Freebie Order for Order ID " + str(order.id)
|
| - |
|
4840 |
litem.quantity = 1
|
| - |
|
4841 |
litem.unit_price = 0.01
|
| - |
|
4842 |
litem.unit_weight = item.weight
|
| - |
|
4843 |
litem.total_price = 0.01
|
| - |
|
4844 |
litem.total_weight = item.weight
|
| - |
|
4845 |
litem.vatRate = 5.0
|
| - |
|
4846 |
|
| - |
|
4847 |
freebie_order.lineitems.append(litem)
|
| - |
|
4848 |
|
| - |
|
4849 |
session.commit()
|
| - |
|
4850 |
|
| - |
|
4851 |
inventory_client.reserveItemInWarehouse(freebie_order.lineitems[0].item_id, item_availability[0], 1, freebie_order.id, datetime.datetime.now(), order.promised_shipping_time, 1)
|
| - |
|
4852 |
|
| - |
|
4853 |
parentOrderAttribute = Attribute()
|
| - |
|
4854 |
parentOrderAttribute.orderId = freebie_order.id
|
| - |
|
4855 |
parentOrderAttribute.name = "parentOrderIdForFreebie"
|
| - |
|
4856 |
parentOrderAttribute.value = str(order.id)
|
| - |
|
4857 |
|
| - |
|
4858 |
freebieOrderAttribute = Attribute()
|
| - |
|
4859 |
freebieOrderAttribute.orderId = order.id
|
| - |
|
4860 |
freebieOrderAttribute.name = "freebieOrderId"
|
| - |
|
4861 |
freebieOrderAttribute.value = str(freebie_order.id)
|
| - |
|
4862 |
session.commit()
|
| - |
|
4863 |
|
| - |
|
4864 |
return freebie_order
|
| - |
|
4865 |
|
| 4735 |
def __printRechargeInvoice(filename, operator, amount, telNum, customerName, invNum, billingTime, payMethod):
|
4866 |
def __printRechargeInvoice(filename, operator, amount, telNum, customerName, invNum, billingTime, payMethod):
|
| 4736 |
PAGE_HEIGHT=defaultPageSize[1];
|
4867 |
PAGE_HEIGHT=defaultPageSize[1];
|
| 4737 |
styles = getSampleStyleSheet()
|
4868 |
styles = getSampleStyleSheet()
|
| 4738 |
styles.add(ParagraphStyle(name='prologue', alignment=TA_CENTER, fontName="Courier", rightIndent = 5, fontSize=10), alias='sH')
|
4869 |
styles.add(ParagraphStyle(name='prologue', alignment=TA_CENTER, fontName="Courier", rightIndent = 5, fontSize=10), alias='sH')
|
| 4739 |
styles.add(ParagraphStyle(name='text', alignment=TA_JUSTIFY, fontName="Courier", fontSize=10), alias='text')
|
4870 |
styles.add(ParagraphStyle(name='text', alignment=TA_JUSTIFY, fontName="Courier", fontSize=10), alias='text')
|