def make_new_invoice(ref_wrapper, posting_date): from webnotes.model.bean import clone from accounts.utils import get_fiscal_year new_invoice = clone(ref_wrapper) mcount = month_map[ref_wrapper.doc.recurring_type] new_invoice.doc.fields.update({ "posting_date": posting_date, "aging_date": posting_date, "due_date": add_days(posting_date, cint(date_diff(ref_wrapper.doc.due_date, ref_wrapper.doc.posting_date))), "invoice_period_from_date": \ get_next_date(ref_wrapper.doc.invoice_period_from_date, mcount), "invoice_period_to_date": \ get_next_date(ref_wrapper.doc.invoice_period_to_date, mcount), "fiscal_year": get_fiscal_year(posting_date)[0], "owner": ref_wrapper.doc.owner, }) new_invoice.submit() return new_invoice
def make_new_invoice(ref_wrapper, posting_date): from webnotes.model.bean import clone from accounts.utils import get_fiscal_year new_invoice = clone(ref_wrapper) mcount = month_map[ref_wrapper.doc.recurring_type] invoice_period_from_date = get_next_date(ref_wrapper.doc.invoice_period_from_date, mcount) # get last day of the month to maintain period if the from date is first day of its own month # and to date is the last day of its own month if (cstr(get_first_day(ref_wrapper.doc.invoice_period_from_date)) == \ cstr(ref_wrapper.doc.invoice_period_from_date)) and \ (cstr(get_last_day(ref_wrapper.doc.invoice_period_to_date)) == \ cstr(ref_wrapper.doc.invoice_period_to_date)): invoice_period_to_date = get_last_day(get_next_date(ref_wrapper.doc.invoice_period_to_date, mcount)) else: invoice_period_to_date = get_next_date(ref_wrapper.doc.invoice_period_to_date, mcount) new_invoice.doc.fields.update({ "posting_date": posting_date, "aging_date": posting_date, "due_date": add_days(posting_date, cint(date_diff(ref_wrapper.doc.due_date, ref_wrapper.doc.posting_date))), "invoice_period_from_date": invoice_period_from_date, "invoice_period_to_date": invoice_period_to_date, "fiscal_year": get_fiscal_year(posting_date)[0], "owner": ref_wrapper.doc.owner, }) new_invoice.submit() return new_invoice