def sync_erp_purchase_invoices_to_quickbooks():
	"""Sync ERPNext Purchase Invoice to QuickBooks"""
	Purchase_invoice_list = []
	for erp_purchase_invoice in erp_purchase_invoice_data():
		try:
			if erp_purchase_invoice: 
				create_erp_purchase_invoice_to_quickbooks(erp_purchase_invoice, Purchase_invoice_list)
			else:
				raise _("Purchase invoice does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_purchase_invoices_to_quickbooks", message=frappe.get_traceback(),
					request_data=erp_purchase_invoice, exception=True)
	results = batch_create(Purchase_invoice_list)
	return results

def erp_purchase_invoice_data():
	"""ERPNext Invoices Record"""
	erp_purchase_invoice = frappe.db.sql("""SELECT `name`,`supplier_name`, taxes_and_charges, DATE_FORMAT(due_date,'%d-%m-%Y') as due_date, DATE_FORMAT(posting_date,'%d-%m-%Y') as posting_date from  `tabPurchase Invoice` where `quickbooks_purchase_invoice_id` is NULL and docstatus = 1""" ,as_dict=1)
	return erp_purchase_invoice

def erp_purchase_invoice_item_data(purchase_invoice_name):
	"""ERPNext Invoice Items Record of Particular Invoice"""
	erp_purchase_invoice_item = frappe.db.sql("""SELECT `idx`, `description`, `rate`, `item_code`, `qty` from `tabPurchase Invoice Item` where parent = '%s'""" %(purchase_invoice_name), as_dict=1)
	return erp_purchase_invoice_item

def create_erp_purchase_invoice_to_quickbooks(erp_purchase_invoice, Purchase_invoice_list):
	purchase_invoice_obj = Bill()
	purchase_invoice_obj.DocNumber = erp_purchase_invoice.name
Beispiel #2
0
def sync_erp_employees_to_quickbooks():
	Employee_list = []
	for erp_employee in erp_employee_data():
		try:
			if erp_employee:
				create_erp_employee_to_quickbooks(erp_employee, Employee_list)
			else:
				raise _("Employee does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_employees_to_quickbooks", message=frappe.get_traceback(),
					request_data=erp_employee, exception=True)
	results = batch_create(Employee_list)
	return results

def erp_employee_data():
	erp_employee = frappe.db.sql("""select employee_name, gender from `tabEmployee` where `quickbooks_emp_id` is NULL && employee_name is not null""" ,as_dict=1)
	return erp_employee

def create_erp_employee_to_quickbooks(erp_employee, Employee_list):
	employee_obj = Employee()
	employee_obj.DisplayName = erp_employee.employee_name
	employee_obj.GivenName = erp_employee.employee_name
	employee_obj.FamilyName = erp_employee.employee_name
	employee_obj.Gender = erp_employee.gender
	employee_obj.save()
	Employee_list.append(employee_obj)
	return Employee_list		
Beispiel #3
0
        try:
            if erp_account:
                create_erp_account_to_quickbooks(erp_account, Account_list)
            else:
                raise _("Account does not exist in ERPNext")
        except Exception, e:
            if e.args[0] and e.args[0].startswith("402"):
                raise e
            else:
                make_quickbooks_log(title=e.message,
                                    status="Error",
                                    method="sync_erp_accounts_to_quickbooks",
                                    message=frappe.get_traceback(),
                                    request_data=erp_account,
                                    exception=True)
    results = batch_create(Account_list)
    return results


def erp_account_data():
    quickbooks_settings = frappe.get_doc("Quickbooks Settings",
                                         "Quickbooks Settings")
    erp_account = frappe.db.sql(
        """select name, root_type, account_type, quickbooks_account_id from `tabAccount` where is_group =0 and company='{0}' and quickbooks_account_id is NULL"""
        .format(quickbooks_settings.select_company),
        as_dict=1)
    return erp_account


def create_erp_account_to_quickbooks(erp_account, Account_list):
    account_obj = Account()
def sync_erp_customers_to_quickbooks():
	"""Sync ERPNext Customer to QuickBooks"""
	Customer_list = []
	for erp_cust in erp_customer_data():
		try:
			if erp_cust:
				create_erp_customer_to_quickbooks(erp_cust, Customer_list)
			else:
				raise _("Customer does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_customers_to_quickbooks", message=frappe.get_traceback(),
					request_data=erp_cust, exception=True)
	results = batch_create(Customer_list)
	return results
	

def erp_customer_data():
	erp_customer = frappe.db.sql("""select `customer_name` from `tabCustomer` WHERE  quickbooks_cust_id IS NULL""" ,as_dict=1)
	return erp_customer

def create_erp_customer_to_quickbooks(erp_cust, Customer_list):
	customer_obj = Customer()
	customer_obj.FullyQualifiedName = erp_cust.customer_name
	customer_obj.DisplayName = erp_cust.customer_name
	customer_obj.save()
	Customer_list.append(customer_obj)
	return Customer_list
def sync_erp_sales_invoices_to_quickbooks():
	"""Sync ERPNext Invoice to QuickBooks"""
	Sales_invoice_list = []
	for erp_sales_invoice in erp_sales_invoice_data():
		try:
			if erp_sales_invoice:
				create_erp_sales_invoice_to_quickbooks(erp_sales_invoice, Sales_invoice_list)
			else:
				raise _("Sales invoice does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_sales_invoices_to_quickbooks", message=frappe.get_traceback(),
					request_data=erp_sales_invoice, exception=True)
	results = batch_create(Sales_invoice_list)
	return results

def erp_sales_invoice_data():
	"""ERPNext Invoices Record"""
	erp_sales_invoice = frappe.db.sql("""select `name` ,`customer_name` from  `tabSales Invoice` where `quickbooks_invoce_id` is NULL and is_pos is FALSE and docstatus = 1""" ,as_dict=1)
	return erp_sales_invoice

def erp_sales_invoice_item_data(invoice_name):
	"""ERPNext Invoice Items Record of Particular Invoice"""
	erp_sales_invoice_item = frappe.db.sql("""SELECT `idx`, `description`, `rate`, `item_code`, `qty` from `tabSales Invoice Item` where parent = '%s'""" %(invoice_name), as_dict=1)
	return erp_sales_invoice_item

def create_erp_sales_invoice_to_quickbooks(erp_sales_invoice, Sales_invoice_list):
	sales_invoice_obj = Invoice()
	sales_invoice_obj.DocNumber = erp_sales_invoice.name
Beispiel #6
0
def sync_erp_items_to_quickbooks():
	Item_list = []
	for erp_item in erp_item_data():
		try:
			if erp_item:
				create_erp_item_to_quickbooks(erp_item, Item_list)
			else:
				raise _("Item does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_items_to_quickbooks", message=frappe.get_traceback(),
					request_data=erp_item, exception=True)
	results = batch_create(Item_list)
	return results

def erp_item_data():
	erp_item = frappe.db.sql("""select item_code, item_name, is_stock_item, Description from `tabItem` where `quickbooks_item_id` is NULL""" ,as_dict=1)
	return erp_item

def create_erp_item_to_quickbooks(erp_item, Item_list):
	item_obj = Item()
	item_obj.Name = erp_item.item_code
	item_obj.FullyQualifiedName = erp_item.item_code
	item_obj.Description = erp_item.Description if erp_item.Description else erp_item.item_name
	item_type_and_Inventory_start_date(item_obj, erp_item)
	item_obj.AssetAccountRef = asset_account_ref(erp_item)
	item_obj.ExpenseAccountRef = expense_account_ref(erp_item)
	item_obj.IncomeAccountRef = income_account_ref(erp_item)
        try:
            if erp_cust:
                create_erp_customer_to_quickbooks(erp_cust, Customer_list)
            else:
                raise _("Customer does not exist in ERPNext")
        except Exception, e:
            if e.args[0] and e.args[0].startswith("402"):
                raise e
            else:
                make_quickbooks_log(title=e.message,
                                    status="Error",
                                    method="sync_erp_customers_to_quickbooks",
                                    message=frappe.get_traceback(),
                                    request_data=erp_cust,
                                    exception=True)
    results = batch_create(Customer_list)
    return results


def erp_customer_data():
    erp_customer = frappe.db.sql(
        """select `customer_name` from `tabCustomer` WHERE  quickbooks_cust_id IS NULL""",
        as_dict=1)
    return erp_customer


def create_erp_customer_to_quickbooks(erp_cust, Customer_list):
    customer_obj = Customer()
    customer_obj.FullyQualifiedName = erp_cust.customer_name
    customer_obj.DisplayName = erp_cust.customer_name
    customer_obj.save()
def sync_erp_suppliers_to_quickbooks():
	Supplier_list = []
	for erp_supplier in erp_supplier_data():
		try:
			if erp_supplier:
				create_erp_suppliers_to_quickbooks(erp_supplier, Supplier_list)
			else:
				raise _("Supplier does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_suppliers", message=frappe.get_traceback(),
					request_data=erp_supplier, exception=True)
	results = batch_create(Supplier_list)
	return results
	
def erp_supplier_data():
	erp_supplier = frappe.db.sql("""select supplier_name from `tabSupplier` WHERE  quickbooks_supp_id IS NULL""" ,as_dict=1)
	return erp_supplier

def create_erp_suppliers_to_quickbooks(erp_supplier, Supplier_list):
	supplier_obj = Vendor()
	supplier_obj.CompanyName = erp_supplier.supplier_name
	supplier_obj.DisplayName = erp_supplier.supplier_name
	supplier_obj.save()
	Supplier_list.append(supplier_obj)
	return Supplier_list

def sync_erp_suppliers_to_quickbooks(quickbooks_obj):
	Supplier_list = []
	for erp_supplier in erp_supplier_data():
		try:
			if erp_supplier:
				create_erp_suppliers_to_quickbooks(erp_supplier, Supplier_list)
			else:
				raise _("Supplier does not exist in ERPNext")
		except Exception, e:
			if e.args[0] and e.args[0].startswith("402"):
				raise e
			else:
				make_quickbooks_log(title=e.message, status="Error", method="sync_erp_suppliers", message=frappe.get_traceback(),
					request_data=erp_supplier, exception=True)
	results = batch_create(Supplier_list)
	return results
	
def erp_supplier_data():
	erp_supplier = frappe.db.sql("""select supplier_name from `tabSupplier` WHERE  quickbooks_supp_id IS NULL""" ,as_dict=1)
	return erp_supplier

def create_erp_suppliers_to_quickbooks(erp_supplier, Supplier_list):
	supplier_obj = Vendor()
	supplier_obj.CompanyName = erp_supplier.supplier_name
	supplier_obj.DisplayName = erp_supplier.supplier_name
	supplier_obj.save()
	Supplier_list.append(supplier_obj)
	return Supplier_list

Beispiel #10
0
        try:
            if erp_employee:
                create_erp_employee_to_quickbooks(erp_employee, Employee_list)
            else:
                raise _("Employee does not exist in ERPNext")
        except Exception, e:
            if e.args[0] and e.args[0].startswith("402"):
                raise e
            else:
                make_quickbooks_log(title=e.message,
                                    status="Error",
                                    method="sync_erp_employees_to_quickbooks",
                                    message=frappe.get_traceback(),
                                    request_data=erp_employee,
                                    exception=True)
    results = batch_create(Employee_list)
    return results


def erp_employee_data():
    erp_employee = frappe.db.sql(
        """select employee_name, gender from `tabEmployee` where `quickbooks_emp_id` is NULL && employee_name is not null""",
        as_dict=1)
    return erp_employee


def create_erp_employee_to_quickbooks(erp_employee, Employee_list):
    employee_obj = Employee()
    employee_obj.DisplayName = erp_employee.employee_name
    employee_obj.GivenName = erp_employee.employee_name
    employee_obj.FamilyName = erp_employee.employee_name