package cn.superdesk.uniorder.dto.vo.invoice.supplier;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu 重构
 * @CreateDate: 2021/11/30 下午1:04
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/11/30 下午1:04
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@Data
public class InvoiceApplySupplierDetailDimGoodsItemVo implements Serializable {

	private static final long serialVersionUID = -1415546249859160852L;


	private Long invoiceApplySupplierXGoodsId;

	private Long   invoiceApplyId;
	private String invoiceApplySn;

	private Long   accountingOrderId;
	private String accountingOrderSn;

	@ApiModelProperty(value = "")
	private Integer invoiceType;
	@ApiModelProperty(value = "开票抬头")
	private String  invoiceTitle;

	@ApiModelProperty(value = "平台方扩展发票信息.id invoiceBankInfo.id")
	private Long   sysPlatformExtInvoiceId;
	@ApiModelProperty(value = "平台方扩展发票信息快照")
	private String sysPlatformExtInvoiceSnapshot;

	private Long   saleId;
	private String saleName;

	private String orderSn;

	private Integer payType;
	private String  payTypeName;

	private Integer orderState;
	private String  orderStateName;

	private String purchaseVirtName;

	@ApiModelProperty("下单人Id")
	private Long   purchaseUserId;
	@ApiModelProperty("下单人姓名")
	private String purchaseUserName;
	@ApiModelProperty("下单人联系电话")
	private String purchasePhone;

	private Date createTime;
	private Date updateTime;


	private Long   unifiedOrderGoodsId;
	private Long   goodsId;
	private Long   outSnapshotOrderGoodsId;
	private String goodsName;
	private String goodsAlias;

	private Integer    quantity;
	// 必填 | 商品 单个 销售价
	private BigDecimal price;
	// 必填 | 商品 单个 成本价
	private BigDecimal costPrice;
	private BigDecimal goodsAmount;
	private BigDecimal goodsCostAmount;

	private Integer direction;

	private Long   cateIdLv1;
	private String cateNameLv1;
	private Long   cateIdLv2;
	private String cateNameLv2;
	private Long   cateIdLv3;
	private String cateNameLv3;

	private String selfOption;
	private String unit;

	/**
	 * 财务编码
	 */
	private String     fiscalCode;
	/**
	 * 税务编码
	 */
	private String     taxCode;
	/**
	 * 税率 %
	 */
	private BigDecimal taxRate;


	@ApiModelProperty("商户税率 税率")
	private BigDecimal merchTaxRate;
	@ApiModelProperty("商户税率 编码")
	private String     merchTaxCode;
	@ApiModelProperty("商户税率 ID")
	private Long       merchTaxId;

	@ApiModelProperty("平台税率 税率")
	private BigDecimal operationTaxRate;
	@ApiModelProperty("平台税率 编码")
	private String     operationTaxCode;
	@ApiModelProperty("平台税率 ID")
	private Long       operationTaxId;

	private String goodsParams;

	//	<!-- uo.service_name, 弃用 改用定义 mark by linjinyu at 20220624 -->
	@ApiModelProperty("弃用 改用定义 mark by linjinyu at 20220624")
	private String serviceName;
	private String serviceNo;
	private String serviceNoName;

	private String remark;


	/****************************************** 附加 start ******************************************/

	@ApiModelProperty("税务软件-编码版本号 加密版本号")
	private String encryptedVersionNumber;
	@ApiModelProperty("税务软件-享受优惠政策")
	private String flagTaxIncentives;
	@ApiModelProperty("税务软件-invoiceType:发票种类")
	private String invoiceTypeName;
	@ApiModelProperty("税务软件-收款人")
	private String personNameCashier;
	@ApiModelProperty("税务软件-复核人")
	private String personNameReview;
	@ApiModelProperty("税务软件-购方企业类型:01-企业;04-个人及非企业性机构")
	private String purchaserCompanyType;
	@ApiModelProperty("税务软件-含税标识:含税;不含税")
	private String flagTaxIncluded;

	/****************************************** 附加   end ******************************************/


	/****************************************** 附加 购方信息 start ******************************************/

//	@ApiModelProperty("购方主体Id 表(sys_enterprise_ext_invoice.id)")
//	private Long    purchaserMainId;
	@ApiModelProperty("购方名称")
	private String  purchaserCompanyName;
	@ApiModelProperty("购方税号")
	private String  purchaserTaxpayersIDCode;
	@ApiModelProperty("购方地址电话")
	private String  purchaserAddressPhone;
	@ApiModelProperty("购方电话----add")
	private String  purchaserPhone;
	@ApiModelProperty("购方地址----add")
	private String  purchaserAddress;
	@ApiModelProperty("购方银行名称与帐号")
	private String  purchaserBankAccountNumber;
	@ApiModelProperty("购方银行帐号")
	private String  purchaserBankAccount;
	@ApiModelProperty("购方银行名称")
	private String  purchaserBankName;

	/****************************************** 附加 购方信息   end ******************************************/

}
